Spec-Zone.ru › Qt 5.15

Класс QSvgRenderer

Класс QSvgRenderer используется для отрисовки содержимого SVG-файлов на устройствах рисования. Подробнее...

Заголовок: #include <QSvgRenderer>
qmake: QT += svg
С тех пор: Qt 4.1
Наследует: QObject

Этот класс был представлен в Qt 4.1.

  • Список всех членов, включая унаследованные
  • Устаревшие члены

Примечание: Все функции в этом классе являются повторно входящими.

Свойства

  • aspectRatioMode : Qt::AspectRatioMode
  • framesPerSecond : int
  • viewBox : QRectF

Открытые функции

QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr)
QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr)
QSvgRenderer(const QString &filename, QObject *parent = nullptr)
QSvgRenderer(QObject *parent = nullptr)
virtual ~QSvgRenderer()
bool animated() const
Qt::AspectRatioMode aspectRatioMode() const
QRectF boundsOnElement(const QString &id) const
QSize defaultSize() const
bool elementExists(const QString &id) const
int framesPerSecond() const
bool isValid() const
void setAspectRatioMode(Qt::AspectRatioMode mode)
void setFramesPerSecond(int num)
void setViewBox(const QRect &viewbox)
void setViewBox(const QRectF &viewbox)
QTransform transformForElement(const QString &id) const
QRect viewBox() const
QRectF viewBoxF() const

Открытые слоты

bool load(QXmlStreamReader *contents)
bool load(const QByteArray &contents)
bool load(const QString &filename)
void render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF())
void render(QPainter *painter, const QRectF &bounds)
void render(QPainter *painter)

Сигналы

void repaintNeeded()

Подробное описание

С помощью 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 Example и QPicture.

END_OF_DOCUMENT_MARKER

Документация свойств

aspectRatioMode : Qt::AspectRatioMode

как отрисовка соответствует соотношению сторон области просмотра SVG

Принятые режимы:

  • Qt::IgnoreAspectRatio (по умолчанию): соотношение сторон игнорируется, и отрисовка растягивается до целевых границ.
  • Qt::KeepAspectRatio: отрисовка центрируется и масштабируется как можно больше в пределах целевых границ, сохраняя при этом соотношение сторон.

Это свойство было добавлено в Qt 5.15.

Функции доступа:

Qt::AspectRatioMode aspectRatioMode() const
void setAspectRatioMode(Qt::AspectRatioMode mode)

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(QXmlStreamReader *contents, QObject *parent = nullptr)

Создает новый рендерер с заданным parent и загружает данные SVG, используя указанный потоковый ридер contents.

Эта функция была добавлена в Qt 4.5.

QSvgRenderer::QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr)

Создает новый рендерер с заданным parent и загружает данные SVG из массива байтов, указанного в contents.

QSvgRenderer::QSvgRenderer(const QString &filename, QObject *parent = nullptr)

Создает новый рендерер с заданным parent и загружает содержимое файла SVG с указанным filename.

QSvgRenderer::QSvgRenderer(QObject *parent = nullptr)

Создает новый рендерер с заданным parent.

[slot] bool QSvgRenderer::load(QXmlStreamReader *contents)

Загружает указанный SVG в contents, возвращая true, если содержимое было успешно проанализировано; в противном случае возвращает false.

Читатель будет использоваться с текущей позиции. Если contents null, поведение не определено.

Эта функция была добавлена в Qt 4.5.

[slot] bool QSvgRenderer::load(const QByteArray &contents)

Загружает указанный формат SVG contents, возвращая true, если содержимое было успешно проанализировано; в противном случае возвращает false.

[slot] bool QSvgRenderer::load(const QString &filename)

Загружает файл SVG, указанный filename, возвращая true, если содержимое было успешно проанализировано; в противном случае возвращает false.

[slot] void QSvgRenderer::render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF())

Отображает указанный элемент с elementId с помощью заданного painter в указанных bounds. Если прямоугольник ограничительной рамки не указан, элемент SVG отображается на всей области рисования.

[slot] void QSvgRenderer::render(QPainter *painter, const QRectF &bounds)

Отображает текущий документ или текущий кадр анимированного документа с помощью заданного painter в указанных bounds в рамках рисовальщика. Если bounds не пусто, вывод будет масштабироваться для заполнения его, игнорируя любое соотношение сторон, подразумеваемое SVG.

[slot] void QSvgRenderer::render(QPainter *painter)

Отображает текущий документ или текущий кадр анимированного документа с помощью заданного painter.

[signal] void QSvgRenderer::repaintNeeded()

Этот сигнал излучается всякий раз, когда отрисовка документа должна быть обновлена, обычно для целей анимации.

[virtual] QSvgRenderer::~QSvgRenderer()

Уничтожает рендерер.

bool QSvgRenderer::animated() const

Возвращает true, если текущий документ содержит анимированные элементы; в противном случае возвращает false.

См. также framesPerSecond().

QRectF QSvgRenderer::boundsOnElement(const QString &id) const

Возвращает прямоугольник ограничительной рамки элемента с заданным id. Матрица преобразования родительских элементов не влияет на рамки элемента.

Эта функция была добавлена в Qt 4.2.

См. также transformForElement().

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.

QTransform QSvgRenderer::transformForElement(const QString &id) const

Возвращает матрицу преобразования для элемента с заданным id. Матрица является произведением преобразования родительских элементов. Само преобразование элемента не включено.

Для нахождения ограничительной рамки элемента в логических координатах вы можете применить матрицу к прямоугольнику, возвращенному из boundsOnElement().

Эта функция была добавлена в Qt 5.15.

См. также boundsOnElement().

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.15/qsvgrenderer.html

Spec-Zone.ru

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