Рендеринг файлов 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, и она доступна в виде черновика. Мобильные профили 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-6.0/svgrendering.html