Рендеринг файлов SVG
Qt SVG предоставляет классы для рендеринга файлов SVG. Для включения определений классов модуля используйте следующую директиву:
#include <QtSvg>
Для подключения к модулю добавьте эту строку в ваш qmake .pro файл:
QT += svg
Рендеринг файлов SVG
Scalable Vector Graphics (SVG) — это язык для описания двумерной графики и графических приложений в XML. SVG 1.1 является рекомендацией W3C и составляет основу текущих разработок SVG в Qt. SVG 1.2 — это спецификация, которая в настоящее время разрабатывается рабочей группой SVG Working Group, и она доступна в виде черновика. Мобильные профили SVG (SVG Basic и SVG Tiny) предназначены для устройств с ограниченными ресурсами и являются частью платформы 3GPP для мобильных телефонов третьего поколения. Вы можете узнать больше о SVG на странице About SVG.
Qt поддерживает статические функции SVG 1.2 Tiny. ECMA скрипты и манипуляции с DOM в настоящее время не поддерживаются.
Изображения SVG могут быть отрисованы на любом подклассе QPaintDevice. Этот подход предоставляет разработчикам гибкость для поиска наилучшего решения для каждого приложения.
Самый простой способ отрисовки файлов SVG — это создание QSvgWidget и загрузка файла SVG с помощью одной из функций QSvgWidget::load().
QSvgRenderer — это класс, отвечающий за рендеринг файлов SVG для QSvgWidget, и его можно использовать напрямую для предоставления поддержки SVG для пользовательских виджетов. Чтобы загрузить файл SVG, создайте QSvgRenderer с именем файла или содержимым файла, или вызовите QSvgRenderer::load() для существующего рендерера. Если файл SVG был загружен успешно, QSvgRenderer::isValid() вернет true.
После успешной загрузки файла SVG его можно отрисовать с помощью функции QSvgRenderer::render(). Обратите внимание, что эта схема позволяет вам рендерить файлы SVG на всех устройствах отображения, поддерживаемых Qt, включая QWidget, QGLWidget и QImage. См. пример SVG Viewer для получения более подробной информации.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/svgrendering.html