Spec-Zone.ru › Qt 5.12

Класс 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API