Описание класса QGraphicsSvgItem [модуль QtSvg]
Класс QGraphicsSvgItem это QGraphicsItem, который может быть использован для отрисовки содержимого файлов SVG. Далее...
#include <QGraphicsSvgItem> Наследует QObject и QGraphicsItem.
Класс был добавлен в Qt 4.2.
Открытые функции
- 29 открытых функций, унаследованных от QObject
- 114 открытых функций, унаследованных от 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 кэшируется для ускорения отображения элементов. Кэширование может быть отключено передачей false методу setCachingEnabled().
Смотрите также 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().
bool QGraphicsSvgItem::isCachingEnabled () const
Возвращает true если содержимое SVG-файла чтобы визуализатор кэшировался.
Обратите внимание на то, что кэширование не будет работать если количество кэшированных элементов превысит QPixmapCache::cacheLimit() или если текущий элемент в заданном представлении больше, чем QGraphicsSvgItem::maximumCacheSize().
QSize QGraphicsSvgItem::maximumCacheSize () const
Возвращает текущий максимальный размер кэша для этого элемента.
Эта функция не принимает во внимание текущую матрицу преобразования и возвращает непреобразованный размер. По-умолчанию максимальный размер кэша равен 1024x768. QPixmapCache::cacheLimit() устанавливает общие границы всего кэша, maximumCacheSize указывает на максимальный размер кэша для этого конкретного элемента.
Смотрите также setMaximumCacheSize().
QSvgRenderer * QGraphicsSvgItem::renderer () const
Возвращает используемый в настоящее время QSvgRenderer.
void QGraphicsSvgItem::setCachingEnabled ( bool caching )
Если caching равно true, то разрешается кэширование на элементе; в противном случае кэширование отключено.
По умолчанию кэширование включено. В целях повышения производительности, советуем оставить кэширование включенным. Обратите внимание на то, что кэширование не будет работать если количество кэшированных элементов превысит QPixmapCache::cacheLimit() или если текущий элемент в заданном представлении больше, чем QGraphicsSvgItem::maximumCacheSize().
Смотрите также isCachingEnabled().
void QGraphicsSvgItem::setElementId ( const QString & id )
Устанавливает XML ID элемента, который должен отображаться этим элементом, равным id.
Смотрите также elementId().
void QGraphicsSvgItem::setMaximumCacheSize ( const QSize & size )
Устанавливает максимальный размер кэша на элементе равным size.
Эта функция не принимает во внимание текущую матрицу преобразования и устанавливает непреобразованный размер. Кэш соответствует QPixmap, который используется для кэширования результатов отрисовки. Используйте QPixmap::setCacheLimit() чтобы установить ограничения на весь кэш и setMaximumCacheSize при установке размера кэша для отдельных элементов.
Смотрите также maximumCacheSize().
void QGraphicsSvgItem::setSharedRenderer ( QSvgRenderer * renderer )
Устанавливает renderer для разделения QSvgRenderer с элементом. Используя этот метод можно разделить один и тот же QSvgRenderer с несколькими элементами. Это значит что файл SVG будет прочитан только один раз. QSvgRenderer, передаваемый в этот метод, должен существовать пока используется этот элемент.
|