Описание класса QGraphicsSvgItem [модуль QtSvg]
Класс QGraphicsSvgItem это QGraphicsItem, который может быть использован для отрисовки содержимого файлов SVG. Далее...
#include <QGraphicsSvgItem> Наследует QObject и QGraphicsItem.
Класс был добавлен в Qt 4.2.
Открытые функции
- 29 открытых функций, унаследованных от QObject
- 132 открытые функции, унаследованные от QGraphicsItem
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 1 сигнал, унаследованный от QObject
- 5 статических открытых членов, унаследованных от QObject
- 1 статический открытый член, унаследованный от QGraphicsItem
- 7 защищенных функций, унаследованных от QObject
- 23 защищённые функции, унаследованные от QGraphicsItem
Подробное описание
Класс 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"));
Размер элемента может быть установлен с помощью метода setSize() или с помощью прямого управления матрицей преобразования элементов.
По-умолчанию отрисовка SVG кэшируется с использованием режима QGraphicsItem::DeviceCoordinateCache для ускорения отображения элементов. Кэширование может быть отключено передачей QGraphicsItem::NoCache в метод QGraphicsItem::setCacheMode().
Смотрите также QSvgWidget, Модуль QtSvg, QGraphicsItem и QGraphicsView.
Описание функций-членов
QGraphicsSvgItem::QGraphicsSvgItem ( QGraphicsItem * parent = 0 )
Создаёт новый элемент SVG с заданным родителем parent.
QGraphicsSvgItem::QGraphicsSvgItem ( const QString & fileName, QGraphicsItem * parent = 0 )
Создаёт новый элемент с указанным родителем parent и загружает содержимое файла SVG с указанным именем fileName.
QRectF QGraphicsSvgItem::boundingRect () const [virtual]
Возвращает ограничивающий прямоугольник этого элемента.
Переопределено из QGraphicsItem.
QString QGraphicsSvgItem::elementId () const
Возвращает XML ID элемента, который отрисовывается в данный момент. Возвращает пустую строку если отрисовывается весь файл.
Смотрите также setElementId().
QSize QGraphicsSvgItem::maximumCacheSize () const
Возвращает максимальный размер кэша в координатах устройства для данного элемента. Если элемент кэшируется с использованием режима QGraphicsItem::DeviceCoordinateCache, кэширование игнорируется, если размер элемента в координатах устройства больше чем максимальный размер.
По-умолчанию максимальный размер кэша равен 1024x768. QPixmapCache::cacheLimit() задаёт суммарные границы всего кэша, тогда как maximumCacheSize() относится к максимальному размеру кэша для этого конкретного элемента.
Смотрите также setMaximumCacheSize() и QGraphicsItem::cacheMode().
QSvgRenderer * QGraphicsSvgItem::renderer () const
Возвращает используемый в настоящее время QSvgRenderer.
void QGraphicsSvgItem::setElementId ( const QString & id )
Устанавливает XML ID элемента, который должен отображаться этим элементом, равным id.
Смотрите также elementId().
void QGraphicsSvgItem::setMaximumCacheSize ( const QSize & size )
Устанавливает максимальный размер кэша элемента в координатах устройства равным size. Если элемент кэшируется с использованием режима QGraphicsItem::DeviceCoordinateCache, кэширование игнорируется, если размер элемента в координатах устройства больше чем размер size.
Кэш соответствует QPixmap, который используется для кэширования результатов отрисовки. Используйте QPixmapCache::setCacheLimit() чтобы установить ограничения на весь кэш и setMaximumCacheSize() при установки размера кэша для отдельных элементов.
Смотрите также maximumCacheSize() и QGraphicsItem::cacheMode().
void QGraphicsSvgItem::setSharedRenderer ( QSvgRenderer * renderer )
Устанавливает renderer для разделения QSvgRenderer с элементом. Используя этот метод можно разделить один и тот же QSvgRenderer с несколькими элементами. Это значит что файл SVG будет прочитан только один раз. QSvgRenderer, передаваемый в этот метод, должен существовать пока используется этот элемент.
|