Класс 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 |
- 31 открытая функция унаследована от 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
Дополнительные унаследованные члены
Подробное описание
Класс 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++ классы, Пример 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/archives/qt-5.6/qsvgrenderer.html