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