Spec-Zone.ru › Qt 5.13

Класс QGraphicsSvgItem

Класс QGraphicsSvgItem — это класс QGraphicsItem, который может использоваться для отрисовки содержимого SVG-файлов. Подробнее...

Заголовок: #include <QGraphicsSvgItem>
qmake: QT += svg
С тех пор: Qt 4.2
Наследует: QGraphicsObject

Этот класс был представлен в Qt 4.2.

  • Список всех членов, включая наследуемые
  • Устаревшие члены

Свойства

  • elementId : QString
  • maximumCacheSize : QSize

Открытые функции

QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)
QGraphicsSvgItem(QGraphicsItem *parent = nullptr)
QString elementId() const
QSize maximumCacheSize() const
QSvgRenderer * renderer() const
void setElementId(const QString &id)
void setMaximumCacheSize(const QSize &size)
void setSharedRenderer(QSvgRenderer *renderer)

Переопределённые открытые функции

virtual QRectF boundingRect() const override
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual int type() const override

Подробное описание

QGraphicsSvgItem предоставляет способ отрисовки SVG-файлов на QGraphicsView. QGraphicsSvgItem может быть создан путём передачи SVG-файла, подлежащего отрисовке, в его конструктор или путём явного задания общего QSvgRenderer на нём.

Обратите внимание, что установка QSvgRenderer на QGraphicsSvgItem не делает элемент владельцем рендерера, поэтому при использовании метода setSharedRenderer() необходимо убедиться, что срок жизни объекта QSvgRenderer будет по крайней мере таким же длительным, как у QGraphicsSvgItem.

QGraphicsSvgItem предоставляет способ отрисовки только частей SVG-файлов с помощью setElementId. Если вызовется метод setElementId(), будет отрисован только элемент SVG (и его дочерние элементы) с указанным идентификатором. Это обеспечивает удобный способ выборочной отрисовки больших SVG-файлов, содержащих ряд отдельных элементов. Например, следующий код отрисовывает только джокеров из SVG-файла, содержащего всю колоду карт:

QSvgRenderer *renderer = new QSvgRenderer(QLatin1String("SvgCardDeck.svg"));
QGraphicsSvgItem *black = new QGraphicsSvgItem();
QGraphicsSvgItem *red   = new QGraphicsSvgItem();

black->setSharedRenderer(renderer);
black->setElementId(QLatin1String("black_joker"));

red->setSharedRenderer(renderer);
red->setElementId(QLatin1String("red_joker"));

Размер элемента можно установить путём непосредственного управления матрицей преобразования элемента.

По умолчанию рендеринг SVG кэшируется с помощью режима QGraphicsItem::DeviceCoordinateCache, чтобы ускорить отображение элементов. Кэширование можно отключить, передав QGraphicsItem::NoCache методу QGraphicsItem::setCacheMode().

См. также QSvgWidget, Qt SVG C++ Classes, QGraphicsItem и QGraphicsView.

Документация по свойствам

elementId : QString

Это свойство содержит XML-идентификатор элемента.

Это свойство было представлено в Qt 4.6.

Функции доступа:

QString elementId() const
void setElementId(const QString &id)

maximumCacheSize : QSize

Это свойство содержит максимальный размер кэша координат устройства для этого элемента.

Это свойство было представлено в Qt 4.6.

Функции доступа:

QSize maximumCacheSize() const
void setMaximumCacheSize(const QSize &size)

Документация по функциям-членам

QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)

Создаёт новый элемент с заданным parent и загружает содержимое SVG-файла с указанным fileName.

QGraphicsSvgItem::QGraphicsSvgItem(QGraphicsItem *parent = nullptr)

Создаёт новый элемент SVG с заданным parent.

[override virtual] QRectF QGraphicsSvgItem::boundingRect() const

Переопределяет: QGraphicsItem::boundingRect() const.

Возвращает прямоугольник, ограничивающий этот элемент.

QString QGraphicsSvgItem::elementId() const

Возвращает XML-идентификатор элемента, который в данный момент отрисовывается. Возвращает пустую строку, если отрисовывается весь файл.

Примечание: Функция-получатель для свойства elementId.

См. также setElementId().

QSize QGraphicsSvgItem::maximumCacheSize() const

Возвращает текущий максимальный размер кэша координат устройства для этого элемента. Если элемент кэшируется с использованием режима QGraphicsItem::DeviceCoordinateCache, кэширование обходится, если расширение элемента в координатах устройства больше максимального размера.

Максимальный размер кэша по умолчанию составляет 1024x768. QPixmapCache::cacheLimit() даёт совокупные границы всего кэша, в то время как maximumCacheSize() относится к максимальному размеру кэша для конкретного элемента.

Примечание: Функция-получатель для свойства maximumCacheSize.

См. также setMaximumCacheSize() и QGraphicsItem::cacheMode().

[override virtual] void QGraphicsSvgItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

Переопределяет: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).

QSvgRenderer *QGraphicsSvgItem::renderer() const

Возвращает используемый в данный момент QSvgRenderer.

void QGraphicsSvgItem::setElementId(const QString &id)

Устанавливает XML-идентификатор элемента в id.

Примечание: Функция-установщик для свойства elementId.

См. также elementId().

void QGraphicsSvgItem::setMaximumCacheSize(const QSize &size)

Устанавливает максимальный размер кэша координат устройства элемента в size. Если элемент кэшируется с использованием режима QGraphicsItem::DeviceCoordinateCache, кэширование обходится, если размер элемента в координатах устройства больше size.

Кэш соответствует QPixmap, используемому для кэширования результатов рендеринга. Используйте QPixmapCache::setCacheLimit(), чтобы установить ограничения для всего кэша, и используйте setMaximumCacheSize(), для задания размера кэша для отдельных элементов.

Примечание: Метод установки свойства maximumCacheSize.

См. также maximumCacheSize() и QGraphicsItem::cacheMode().

void QGraphicsSvgItem::setSharedRenderer(QSvgRenderer *renderer)

Устанавливает renderer в качестве общего QSvgRenderer для элемента. Используя этот метод, можно использовать один и тот же QSvgRenderer для нескольких элементов. Это означает, что файл SVG будет проанализирован только один раз. QSvgRenderer, переданный в этот метод, должен существовать до тех пор, пока используется этот элемент.

[override virtual] int QGraphicsSvgItem::type() const

Переопределяет: QGraphicsItem::type() const.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qgraphicssvgitem.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API