class QSvgRenderer#

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

Inheritance diagram of PySide6.QtSvg.QSvgRenderer

摘要#

属性#

方法#

槽(Slots)#

信号(Signals)#

注释

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

详细说明#

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

QSvgRenderer提供了一个API,支持SVG渲染的基本功能,如加载和渲染静态图形,以及更交互式的功能,如动画。由于渲染是通过QPainter完成的,因此SVG图形可以渲染在任何QPaintDevice的子类上。

SVG图形在构造QSvgRenderer时加载,或者稍后使用load()函数加载。数据可以是直接提供的序列化XML,也可以是用文件名间接提供的。如果已加载有效的文件,无论是当渲染器被构造时还是在稍后的某个时间,isValid()将返回true;否则返回false。QSvgRenderer提供了render()槽来使用指定的画家渲染当前文档,或动画文档的当前帧。

defaultSize()函数提供了渲染当前加载的SVG文件所需空间的信息。对于需要向其父布局提供大小提示的画布设备,如QWidget,这很有用。图形的默认大小可能与其可视区域不同,使用viewBox属性找到。

支持动画SVG图形,可以使用简单的函数和属性进行控制。

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

注释

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

属性animationEnabled: bool#

该属性表示是否运行动画(如果SVG是动态的话)。

将此属性设置为false将停止动画计时器。如果SVG包含动画元素,则将此属性设置为false将启动动画计时器。

如果SVG没有动画,则此属性不会有任何作用。否则,默认为true。

另请参阅

animated()

访问函数
属性aspectRatioMode: Qt.AspectRatioMode#

该属性表示渲染如何遵守SVG视图框的宽高比。

接受的模式:

  • Qt::IgnoreAspectRatio(默认):忽略宽高比,渲染扩展到目标边界。

  • Qt::KeepAspectRatio:渲染居中,并在保持宽高比的前提下尽可能放大,以适应目标边界。

访问函数
属性currentFrame: int#
访问函数
属性framesPerSecond: int#

该属性表示要显示的每秒帧数。

如果当前文档不是动态的,每秒帧数为0。

另请参阅

animated()

访问函数
属性options: QtSvg.Option 组合#

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

在调用任何加载函数之前设置此属性,以改变 QSvgRenderer 的行为。

默认情况下,不设置任何标志。

访问函数
属性viewBox: QRectF#

此属性表示文档在逻辑坐标下可见区域的矩形。

访问函数
__init__(contents[, parent=None])#
参数:

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

__init__(contents[, parent=None])
参数:

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

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

  • parentQObject

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

__init__([parent=None])
参数:

parentQObject

使用指定的parent构建一个新的渲染器。

animated()#
返回类型:

bool

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

另请参阅

framesPerSecond()

animationDuration()#
返回类型:

int

aspectRatioMode()#
返回类型:

AspectRatioMode

另请参阅

setAspectRatioMode()

属性aspectRatioModeᅟ的获取器。

boundsOnElement(id)#
参数:

id – str

返回类型:

QRectF

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

另请参阅

transformForElement()

currentFrame()#
返回类型:

int

属性 currentFrame 的读取器。

defaultSize()#
返回类型:

QSize

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

elementExists(id)#
参数:

id – str

返回类型:

bool

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

注意:此方法仅对可渲染的元素返回 true,这意味着被视为填充/描边样式属性一部分的元素,例如径向渐变,尽管带有“id”属性,但仍不会被此方法找到。

framesPerSecond()#
返回类型:

int

另请参阅

setFramesPerSecond()

属性 framesPerSecond 的读取器。

isAnimationEnabled()#
返回类型:

bool

属性 animationEnabled 的读取器。

isValid()#
返回类型:

bool

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

load(filename)#
参数:

filename – str

返回类型:

bool

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

load(contents)
参数:

contentsQXmlStreamReader

返回类型:

bool

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

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

load(contents)
参数:

contentsQByteArray

返回类型:

bool

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

options()#
返回类型:

Option 的组合

另请参阅

setOptions()

属性 options 的读取器。

render(p)#
参数:

pQPainter

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

render(p, bounds)
参数:

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

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

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

repaintNeeded()#

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

setAnimationEnabled(enable)#
参数:

enable – bool

另请参阅

isAnimationEnabled()

animationEnabled 属性的设置器。

setAspectRatioMode(mode)#
参数:

modeAspectRatioMode

另请参阅

aspectRatioMode()

aspectRatioMode 属性的设置器。

setCurrentFrame(arg__1)#
参数:

arg__1 – int

currentFrame 属性的设置器。

setFramesPerSecond(num)#
参数:

num – int

另请参阅

framesPerSecond()

属性framesPerSecond的设置器。

setOptions(flags)#
参数:

flagsOption的组合

另请参阅

options()

属性options的设置器。

setViewBox(viewbox)#
参数:

viewboxQRect

另请参阅

viewBox()

setViewBox(viewbox)
参数:

viewboxQRectF

属性viewBox的设置器。

transformForElement(id)#
参数:

id – str

返回类型:

QTransform

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

要找到元素在逻辑坐标下的边界矩形,可以将矩阵应用到从boundsOnElement返回的矩形上。

另请参阅

boundsOnElement()

viewBox()#
返回类型:

QRect

返回viewBoxF.toRect()。

另请参阅

setViewBox viewBoxF

viewBoxF()#
返回类型:

QRectF

属性viewBox的获取器。