Отображение файлов 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 можно узнать на странице О 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.9/svgrendering.html