Класс 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-элемент (и его потомки) с заданным id. Это обеспечивает удобный способ выборочного рендеринга больших 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-id элемента.
Это свойство было представлено в 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-id элемента, который в данный момент рендерится. Возвращает пустую строку, если рендерится весь файл.
Примечание: Функция-получатель для свойства 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 элемента на 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.14/qgraphicssvgitem.html