PySide6.QtSvg.QSvgRenderer

class QSvgRenderer

QSvgRenderer 类用于将 SVG 文件的内容绘制到绘图设备上。更多

PySide6.QtSvg.QSvgRenderer 的继承图

概要

属性

方法

插槽

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

使用 QSvgRenderer,可缩放矢量图形(SVG)可以渲染到任何 QPaintDevice 子类上,包括 QWidget、QImage 和 QGLWidget。

QSvgRenderer 提供了一个支持SVG渲染基本功能的API,例如加载和渲染静态绘图,以及更多交互功能如动画。由于渲染是使用QPainter执行的,SVG绘图可以在任何QPaintDevice的子类上渲染。

SVG绘图在QSvgRenderer构造时加载,或者稍后使用load()函数加载。数据可以直接作为序列化的XML提供,或者间接使用文件名提供。如果在渲染器构造时或稍后某个时间加载了有效文件,isValid()返回true;否则返回false。QSvgRenderer提供了render()槽,用于使用给定的绘图器渲染当前文档或动画文档的当前帧。

defaultSize() 函数提供了关于渲染当前加载的SVG文件所需空间量的信息。这对于像QWidget这样的绘图设备非常有用,因为它们通常需要向父布局提供大小提示。绘图的默认大小可能与其可见区域不同,可以使用viewBox属性找到。

支持动画SVG绘图,并且可以通过一组简单的函数和属性进行控制:

最后,QSvgRenderer 类提供了 repaintNeeded() 信号,每当需要更新文档的渲染时就会发出此信号。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property animationEnabledᅟ: bool

此属性决定如果SVG是动画的,动画是否应该运行。

将属性设置为 false 会停止动画计时器。将属性设置为 true 会启动动画计时器,前提是 SVG 包含动画元素。

如果SVG没有动画效果,该属性将不会产生任何影响。否则,该属性默认为true。

另请参阅

animated()

Access functions:
property aspectRatioModeᅟ: Qt.AspectRatioMode

此属性控制渲染如何遵循SVG视图框的宽高比。

接受的模式有:

  • Qt::IgnoreAspectRatio(默认):忽略宽高比,渲染内容会拉伸以适应目标边界。

  • Qt::KeepAspectRatio: 渲染居中并在目标边界内尽可能大,同时保持宽高比。

Access functions:
property currentFrameᅟ: int
Access functions:
property framesPerSecondᅟ: int

此属性保存要显示的每秒帧数。

如果当前文档没有动画,每秒帧数为0。

另请参阅

animated()

Access functions:
property optionsᅟ: Combination of QtSvg.Option

此属性包含一组Option标志,可用于启用或禁用SVG文件解析和渲染的各种功能。

为了使此属性生效,必须在执行load()之前设置此属性。请注意,带有SVG源参数的构造函数将在构造期间执行加载。

另请参阅

setDefaultOptions

Access functions:
property viewBoxᅟ: QRectF

此属性保存指定文档可见区域的矩形,使用逻辑坐标。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent构造一个新的渲染器。

__init__(contents[, parent=None])
Parameters:

使用给定的parent构造一个新的渲染器,并使用contents指定的流读取器加载SVG数据。

__init__(contents[, parent=None])
Parameters:

使用给定的parent构造一个新的渲染器,并从contents指定的字节数组中加载SVG数据。

__init__(filename[, parent=None])
Parameters:
  • filename – str

  • parentQObject

使用给定的parent构造一个新的渲染器,并加载指定filename的SVG文件内容。

animated()
Return type:

布尔

如果当前文档包含动画元素,则返回 true;否则返回 false。

另请参阅

framesPerSecond()

animationDuration()
Return type:

整数

aspectRatioMode()
Return type:

AspectRatioMode

另请参阅

setAspectRatioMode()

属性 aspectRatioModeᅟ 的获取器。

boundsOnElement(id)
Parameters:

id – str

Return type:

QRectF

返回具有给定id的项目的边界矩形。父元素的变换矩阵不会影响元素的边界。

另请参阅

transformForElement()

currentFrame()
Return type:

整数

属性 currentFrameᅟ 的获取器。

defaultSize()
Return type:

QSize

返回文档内容的默认大小。

elementExists(id)
Parameters:

id – str

Return type:

布尔

如果当前解析的SVG文件中存在具有给定id的元素并且是可渲染元素,则返回true。

注意:此方法仅对可以渲染的元素返回true。这意味着被视为填充/描边样式属性一部分的元素,例如即使标记有“id”属性的radialGradients,也不会被此方法找到。

framesPerSecond()
Return type:

整数

另请参阅

setFramesPerSecond()

属性 framesPerSecondᅟ 的获取器。

isAnimationEnabled()
Return type:

布尔

属性 animationEnabledᅟ 的获取器。

isValid()
Return type:

布尔

如果存在有效的当前文档,则返回 true;否则返回 false。

load(contents)
Parameters:

内容QXmlStreamReader

Return type:

布尔

加载指定的SVG到contents中,如果内容成功解析则返回true;否则返回false。

读取器将从其当前位置开始使用。如果 contentsnull,则行为未定义。

load(contents)
Parameters:

内容QByteArray

Return type:

布尔

加载指定的SVG格式contents,如果内容成功解析则返回true;否则返回false。

load(filename)
Parameters:

文件名 – str

Return type:

布尔

加载由filename指定的SVG文件,如果内容成功解析则返回true;否则返回false。

options()
Return type:

Option的组合

另请参阅

setOptions()

属性 optionsᅟ 的获取器。

render(p)
Parameters:

pQPainter

使用给定的painter渲染当前文档或动画文档的当前帧。

render(p, bounds)
Parameters:

使用给定的painter在指定的bounds内渲染当前文档或动画文档的当前帧。如果bounds不为空,输出将缩放以填充它,忽略SVG所暗示的任何宽高比。

render(p, elementId[, bounds=QRectF()])
Parameters:

使用给定的painter在指定的bounds上渲染具有elementId的元素。如果未指定边界矩形,则SVG元素将映射到整个绘图设备。

repaintNeeded()

每当文档的渲染需要更新时,通常会发出此信号,通常用于动画目的。

setAnimationEnabled(enable)
Parameters:

enable – 布尔值

另请参阅

isAnimationEnabled()

属性 animationEnabledᅟ 的设置器。

setAspectRatioMode(mode)
Parameters:

模式AspectRatioMode

另请参阅

aspectRatioMode()

属性 aspectRatioModeᅟ 的设置器。

setCurrentFrame(arg__1)
Parameters:

arg__1 – 整数

属性 currentFrameᅟ 的设置器。

static setDefaultOptions(flags)
Parameters:

flagsOption 的组合

设置渲染器创建时将使用的选项标志为flags。默认情况下,没有设置任何标志。

在运行时,可以通过QT_SVG_DEFAULT_OPTIONS环境变量来覆盖此设置。

setFramesPerSecond(num)
Parameters:

num – 整数

另请参阅

framesPerSecond()

属性 framesPerSecondᅟ 的设置器。

setOptions(flags)
Parameters:

flagsOption 的组合

另请参阅

options()

属性 optionsᅟ 的设置器。

setViewBox(viewbox)
Parameters:

viewboxQRect

另请参阅

viewBox()

setViewBox(viewbox)
Parameters:

viewboxQRectF

属性 viewBoxᅟ 的设置器。

transformForElement(id)
Parameters:

id – str

Return type:

QTransform

返回具有给定id的元素的变换矩阵。该矩阵是元素父级变换的乘积。不包括元素本身的变换。

要找到元素在逻辑坐标中的边界矩形,您可以将矩阵应用于从boundsOnElement()返回的矩形。

另请参阅

boundsOnElement()

viewBox()
Return type:

QRect

返回 viewBoxF() .toRect()。

另请参阅

setViewBox() viewBoxF()

viewBoxF()
Return type:

QRectF

属性 viewBoxᅟ 的获取器。