Класс QSvgRenderer
Класс QSvgRenderer используется для отрисовки содержимого SVG-файлов на устройствах рисования. Подробнее...
| Заголовок: | #include <QSvgRenderer> |
| qmake: | QT += svg |
| С тех пор: | Qt 4.1 |
| Наследует: | QObject |
Примечание: Все функции в этом классе являются реентерабельными.
Свойства
- framesPerSecond : int
- viewBox : QRectF
- 1 свойство унаследовано от QObject
Открытые функции
| QSvgRenderer(QObject *parent = Q_NULLPTR) | |
| QSvgRenderer(const QString &filename, QObject *parent = Q_NULLPTR) | |
| QSvgRenderer(const QByteArray &contents, QObject *parent = Q_NULLPTR) | |
| QSvgRenderer(QXmlStreamReader *contents, QObject *parent = Q_NULLPTR) | |
| ~QSvgRenderer() | |
| bool | animated() const |
| QRectF | boundsOnElement(const QString &id) const |
| QSize | defaultSize() const |
| bool | elementExists(const QString &id) const |
| int | framesPerSecond() const |
| bool | isValid() const |
| QMatrix | matrixForElement(const QString &id) const |
| void | setFramesPerSecond(int num) |
| void | setViewBox(const QRect &viewbox) |
| void | setViewBox(const QRectF &viewbox) |
| QRect | viewBox() const |
| QRectF | viewBoxF() const |
- 32 открытые функции, унаследованные от QObject
Открытые слоты
| bool | load(const QString &filename) |
| bool | load(const QByteArray &contents) |
| bool | load(QXmlStreamReader *contents) |
| void | render(QPainter *painter) |
| void | render(QPainter *painter, const QRectF &bounds) |
| void | render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF()) |
- 1 открытый слот, унаследованный от QObject
Сигналы
| void | repaintNeeded() |
- 2 сигнала, унаследованные от QObject
Дополнительные унаследованные члены
- 11 статических открытых членов, унаследованных от QObject
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QSvgRenderer используется для отрисовки содержимого SVG-файлов на устройствах рисования.
С помощью QSvgRenderer можно отрисовать Scalable Vector Graphics (SVG) на любом устройстве рисования QPaintDevice, включая QWidget, QImage и QGLWidget.
QSvgRenderer предоставляет API, поддерживающий базовые функции отрисовки SVG, такие как загрузка и отрисовка статических изображений, а также более интерактивные функции, такие как анимация. Поскольку отрисовка выполняется с использованием QPainter, SVG-рисунки можно отрисовать на любом подклассе QPaintDevice.
SVG-рисунки загружаются при создании объекта QSvgRenderer или загружаются позже с помощью функций load(). Данные предоставляются либо непосредственно как сериализованный XML, либо косвенно с помощью имени файла. Если загружен допустимый файл, либо при создании, либо впоследствии, isValid() возвращает true; в противном случае – false. QSvgRenderer предоставляет слот render() для отрисовки текущего документа или текущей кадра анимированного документа с использованием заданного средства рисования.
Функция defaultSize() предоставляет информацию о требуемом объёме пространства для отрисовки текущего загруженного SVG-файла. Это полезно для устройств рисования, таких как QWidget, которым часто требуется предоставить подсказку размера своему родительскому макету. Размер изображения по умолчанию может отличаться от видимой области, которая определяется свойством viewBox.
Поддерживаются анимированные SVG-рисунки, которые можно контролировать с помощью набора функций и свойств:
- Функция animated() указывает, содержит ли рисунок информацию об анимации.
- Свойство framesPerSecond содержит частоту воспроизведения анимации.
Наконец, класс QSvgRenderer предоставляет сигнал repaintNeeded(), который излучается всякий раз, когда необходимо обновить отрисовку документа.
См. также QSvgWidget, Qt SVG C++ Classes, Пример SVG Viewer и QPicture.
Документация по свойствам
framesPerSecond : int
Это свойство содержит количество кадров в секунду, которое должно отображаться.
Количество кадров в секунду равно 0, если текущий документ не анимирован.
Функции доступа:
| int | framesPerSecond() const |
| void | setFramesPerSecond(int num) |
См. также animated().
viewBox : QRectF
Это свойство содержит прямоугольник, определяющий видимую область документа в логических координатах.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QRectF | viewBoxF() const |
| void | setViewBox(const QRect &viewbox) |
| void | setViewBox(const QRectF &viewbox) |
Документация по членам-функциям
QSvgRenderer::QSvgRenderer(QObject *parent = Q_NULLPTR)
Конструирует новый объект отрисовки с заданным parent.
QSvgRenderer::QSvgRenderer(const QString &filename, QObject *parent = Q_NULLPTR)
Создает новый рендерер с заданным parent и загружает содержимое файла SVG с указанным filename.
QSvgRenderer::QSvgRenderer(const QByteArray &contents, QObject *parent = Q_NULLPTR)
Создаёт новый рендерер с заданным parent и загружает данные SVG из массива байтов, указанного в contents.
QSvgRenderer::QSvgRenderer(QXmlStreamReader *contents, QObject *parent = Q_NULLPTR)
Создаёт новый рендерер с заданным parent и загружает данные SVG, используя ридер потока, указанный в contents.
Эта функция была добавлена в Qt 4.5.
QSvgRenderer::~QSvgRenderer()
Уничтожает рендерер.
bool QSvgRenderer::animated() const
Возвращает true, если текущий документ содержит анимированные элементы; в противном случае возвращает false.
См. также framesPerSecond().
QRectF QSvgRenderer::boundsOnElement(const QString &id) const
Возвращает прямоугольник ограничивающей рамки элемента с заданным id. Матрица преобразования родительских элементов не влияет на пределы элемента.
Эта функция была добавлена в Qt 4.2.
См. также matrixForElement().
QSize QSvgRenderer::defaultSize() const
Возвращает размер по умолчанию содержимого документа.
bool QSvgRenderer::elementExists(const QString &id) const
Возвращает true, если элемент с заданным id существует в текущем анализируемом файле SVG и является рендерируемым элементом.
Примечание: этот метод возвращает true только для элементов, которые могут быть отрисованы. Это означает, что элементы, которые считаются частью свойств заливки/контура, например, радиальные градиенты, даже если они помечены атрибутами «id», не будут найдены этим методом.
Эта функция была добавлена в Qt 4.2.
bool QSvgRenderer::isValid() const
Возвращает true, если существует допустимый текущий документ; в противном случае возвращает false.
bool QSvgRenderer::load(const QString &filename)
Загружает файл SVG, указанный filename, возвращая true, если содержимое было успешно проанализировано; в противном случае возвращает false.
bool QSvgRenderer::load(const QByteArray &contents)
Загружает указанное содержимое формата SVG, contents, возвращая true, если содержимое было успешно проанализировано; в противном случае возвращает false.
bool QSvgRenderer::load(QXmlStreamReader *contents)
Загружает указанный SVG в contents, возвращая true, если содержимое было успешно проанализировано; в противном случае возвращает false.
Чтение будет происходить с текущей позиции. Если contents null, поведение не определено.
Эта функция была добавлена в Qt 4.5.
QMatrix QSvgRenderer::matrixForElement(const QString &id) const
Возвращает матрицу преобразования для элемента с заданным id. Матрица является произведением преобразований родительских элементов. Преобразование самого элемента не включено.
Для нахождения прямоугольника ограничивающей рамки элемента в логических координатах, вы можете применить матрицу к прямоугольнику, возвращаемому из boundsOnElement().
Эта функция была добавлена в Qt 4.2.
См. также boundsOnElement().
void QSvgRenderer::render(QPainter *painter)
Отображает текущий документ или текущую кадр анимированного документа, используя предоставленного painter.
void QSvgRenderer::render(QPainter *painter, const QRectF &bounds)
Отображает текущий документ или текущую кадр анимированного документа, используя заданный painter в указанном bounds в пределах художника. Если прямоугольник ограничивающей рамки не указан, файл SVG отображается на всё устройство рисования.
void QSvgRenderer::render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF())
Отображает заданный элемент с elementId, используя заданный painter в указанном bounds. Если прямоугольник ограничивающей рамки не указан, SVG элемент отображается на всё устройство рисования.
void QSvgRenderer::repaintNeeded()
Этот сигнал испускается всякий раз, когда требуется обновить отрисовку документа, обычно для целей анимации.
QRect QSvgRenderer::viewBox() const
Возвращает viewBoxF().toRect().
См. также setViewBox() и viewBoxF().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qsvgrenderer.html