Класс 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 |
- 5 открытых функций унаследовано от QGraphicsObject
- 176 открытых функций унаследовано от QGraphicsItem
- 34 открытых функций унаследовано от QObject
Дополнительные унаследованные члены
- 1 открытый слот унаследован от QObject
- 9 сигналов унаследовано от QGraphicsObject
- 2 сигнала унаследовано от QObject
- 1 открытая переменная унаследована от QGraphicsObject
- 1 открытая переменная унаследована от QObject
- 2 статических открытых членов унаследовано от QGraphicsObject
- 10 статических открытых членов унаследовано от QObject
- 1 защищенный метод унаследован от QGraphicsObject
- 24 защищенных метода унаследовано от QGraphicsItem
- 9 защищенных методов унаследовано от QObject
- 1 защищенный слот унаследован от QGraphicsObject
- 1 защищенный тип унаследован от QGraphicsItem
- 2 защищенных переменных унаследовано от QObject
Подробное описание
Класс 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.
Документация по типу члена
перечисление 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-идентификатор элемента, который в данный момент отрисовывается. Возвращает пустую строку, если отрисовывается весь файл.
Примечание: Функция-геттер для свойства 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 элемента в 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/archives/qt-5.11/qgraphicssvgitem.html