Spec-Zone.ru › Qt 6.1

Класс QGraphicsSvgItem

Класс QGraphicsSvgItem — это QGraphicsItem, который может использоваться для рендеринга содержимого SVG-файлов. Подробнее...

Заголовок: #include <QGraphicsSvgItem>
CMake: find_package(Qt6 COMPONENTS SvgWidgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets)
qmake: QT += svgwidgets
Наследует: QGraphicsObject
  • Список всех членов, включая наследуемые
  • Устаревшие члены

Свойства

  • 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-элемент (и его потомки) с переданным идентификатором. Это обеспечивает удобный способ выборочного рендеринга больших 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-идентификатор элемента.

Функции доступа:

QString elementId() const
void setElementId(const QString &id)

maximumCacheSize : QSize

Это свойство содержит максимальный размер кэша координат устройства для этого элемента.

Функции доступа:

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-идентификатор элемента, который в данный момент рендерится. Возвращает пустую строку, если рендерится весь файл.

Примечание: Функция-получатель для свойства 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.

Примечание: Функция-установитель для свойства 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-6.1/qgraphicssvgitem.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API