Класс QGraphicsSvgItem
Класс QGraphicsSvgItem — это класс QGraphicsItem, который может использоваться для отрисовки содержимого SVG-файлов. Подробнее...
| Заголовок: | #include <QGraphicsSvgItem> |
| qmake: | QT += svg |
| С момента: | Qt 4.2 |
| Наследует: | QGraphicsObject |
Свойства
- elementId : QString
- maximumCacheSize : QSize
- 12 свойств, унаследованных от QGraphicsObject
- 1 свойство, унаследованное от QObject
Открытые функции
| QGraphicsSvgItem(QGraphicsItem *parent = Q_NULLPTR) | |
| QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = Q_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 = Q_NULLPTR) override |
| virtual int | type() const override |
- 2 открытых функции, унаследованные от QGraphicsObject
- 32 открытых функции, унаследованные от QObject
- 176 открытых функции, унаследованные от QGraphicsItem
Дополнительные наследуемые члены
- 1 открытый слот, унаследованный от QObject
- 9 сигналов, унаследованных от QGraphicsObject
- 2 сигнала, унаследованные от QObject
- 11 статических открытых членов, унаследованных от QObject
- 2 статических открытых члена, унаследованные от QGraphicsItem
- 1 защищённая функция, унаследованная от QGraphicsObject
- 9 защищённых функций, унаследованных от QObject
- 24 защищённых функции, унаследованные от QGraphicsItem
- 1 защищённый слот, унаследованный от QGraphicsObject
Подробное описание
Класс QGraphicsSvgItem — это класс QGraphicsItem, который может использоваться для отрисовки содержимого SVG-файлов.
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++ классы, 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(QGraphicsItem *parent = Q_NULLPTR)
Конструирует новый элемент SVG с заданным parent.
QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = Q_NULLPTR)
Конструирует новый элемент с заданным parent и загружает содержимое SVG-файла с указанным именем fileName.
[override virtual] QRectF QGraphicsSvgItem::boundingRect() const
Переопределено из QGraphicsItem::boundingRect().
Возвращает прямоугольник, охватывающий этот элемент.
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 = Q_NULLPTR)
Переопределено из QGraphicsItem::paint().
QSvgRenderer *QGraphicsSvgItem::renderer() const
Возвращает текущий используемый QSvgRenderer.
void QGraphicsSvgItem::setElementId(const QString &id)
Устанавливает XML-ID элемента в 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().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qgraphicssvgitem.html