Класс 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 |
| virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = Q_NULLPTR) |
| virtual int | type() const |
- 2 открытых функции, унаследованные от QGraphicsObject
- 31 открытых функции, унаследованные от 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")); Размер элемента можно задать с помощью метода setSize() прямоугольника ограничивающего области или путём прямого изменения матрицы преобразований элемента.
По умолчанию рендеринг 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.
[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().
[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, переданный в этот метод, должен существовать до тех пор, пока этот элемент используется.
[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/archives/qt-5.6/qgraphicssvgitem.html