注意

本节包含从 C++ 自动翻译到 Python 的代码段,可能包含错误。

渲染 SVG 文件#

使用 Qt SVG 模块渲染 SVG 文件

Qt SVG 提供了渲染 SVG 文件的类。要包含模块类的定义,使用以下指令

from PySide6 import QtSvg

要链接到模块,将此行添加到您的 qmake .pro 文件

QT += svg

渲染 SVG 文件#

可伸缩矢量图形(SVG)是一种用于在 XML 中描述二维图形和图形应用的语言。SVG 1.1 是 W3C 建议,形成了 Qt 当前 SVG 开发的核心。SVG 1.2 是当前被 SVG 工作组开发的规范,它以草案形式提供。移动 SVG 配置文件(SVG Basic 和 SVG Tiny)针对资源有限的设备,是第三代移动电话 3GPP 平台的一部分。您可以在 About SVG 中了解更多关于 SVG 的信息。

PySide6 支持SVG 1.2 Tiny的静态功能。ECMA 脚本和DOM操作目前尚不支持。

从 Qt 6.7 开始,支持 SVG 1.1 标准的一些附加功能

SVG 绘图可以渲染到任何 QPaintDevice 子类。这种方法让开发者有灵活性,以找到每个应用的最佳解决方案。

渲染 SVG 文件最简单的方法是构建一个QSvgWidget并使用其中一个load()函数来加载 SVG 文件。

QSvgRenderer 类负责为QSvgWidget渲染 SVG 文件,可以直接用它为自定义小部件提供 SVG 支持。要加载 SVG 文件,使用文件名或文件内容构建一个QSvgRenderer,或者在一个现有的渲染器上调用load()方法。如果 SVG 文件成功加载了,isValid()将返回 true。

成功加载 SVG 文件后,您可以使用 render() 函数将其渲染。请注意,此方案允许您在 Qt 支持的所有绘图设备上渲染 SVG 文件,包括 QWidget、QGLWidget 和 QImage。