Класс QSvgRenderer
Класс QSvgRenderer используется для отрисовки содержимого файлов SVG на устройствах рисования. Подробнее...
| Заголовок: | #include <QSvgRenderer> |
| qmake: | QT += svg |
| С тех пор как: | Qt 4.1 |
| Наследует: | QObject |
Примечание: Все функции в этом классе являются реентерабельными.
Свойства
- framesPerSecond : int
- viewBox : QRectF
- 1 свойство унаследовано от QObject
Открытые функции
| QSvgRenderer(QObject *parent = nullptr) | |
| QSvgRenderer(const QString &filename, QObject *parent = nullptr) | |
| QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr) | |
| QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr) | |
| virtual | ~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
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследованы от QObject
Дополнительные унаследованные члены
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QSvgRenderer используется для отрисовки содержимого файлов SVG на устройствах рисования.
С помощью QSvgRenderer векторная графика 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 = nullptr)
Создаёт новый рендерер с указанным parent.
QSvgRenderer::QSvgRenderer(const QString &filename, QObject *parent = nullptr)
Создаёт новый рендерер с указанным parent и загружает содержимое файла SVG с указанным именем файла filename.
QSvgRenderer::QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr)
Создаёт новый рендерер с указанным parent и загружает данные SVG из массива байтов, указанного contents.
QSvgRenderer::QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr)
Создаёт новый рендерер с указанным parent и загружает данные SVG, используя поток чтения, указанный в contents.
Эта функция была добавлена в Qt 4.5.
[virtual] 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.
[slot] bool QSvgRenderer::load(const QString &filename)
Загружает файл SVG, указанный filename, возвращает true, если содержимое было успешно распарсено; в противном случае возвращает false.
[slot] bool QSvgRenderer::load(const QByteArray &contents)
Загружает указанное содержимое формата SVG contents, возвращает true, если содержимое было успешно распарсено; в противном случае возвращает false.
[slot] 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().
[slot] void QSvgRenderer::render(QPainter *painter)
Отображает текущий документ или текущую кадр анимированного документа, используя указанный painter.
[slot] void QSvgRenderer::render(QPainter *painter, const QRectF &bounds)
Отображает текущий документ или текущий кадр анимированного документа, используя указанный painter в указанной области bounds внутри рендерера. Если прямоугольник ограничивающей области не указан, файл SVG отображается на весь графический примитив.
[slot] void QSvgRenderer::render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF())
Отображает указанный элемент с elementId, используя указанный painter в указанной области bounds. Если прямоугольник ограничивающей области не указан, SVG-элемент отображается на весь графический примитив.
[signal] 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.12/qsvgrenderer.html