class QGraphicsSvgItem#

QGraphicsSvgItem 是一个 QGraphicsItem,可以用来渲染 SVG 文件的内容。 更多信息

Inheritance diagram of PySide6.QtSvgWidgets.QGraphicsSvgItem

概述#

属性#

方法#

注意

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

详细信息#

警告

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

QGraphicsSvgItem 为将 SVG 文件渲染到 QGraphicsView 提供了一种方法。QGraphicsSvgItem 可以通过将要渲染的 SVG 文件传递给其构造函数或显式设置共享 QSvgRenderer 来创建。

请注意,将 Q SvgRenderer 设置在 QGraphicsSvgItem 上不会使项拥有渲染器的所有权,因此如果使用 setSharedRenderer() 方法,必须确保 QSvgRenderer 对象的寿命至少与 QGraphicsSvgItem 一样长。

QGraphicsSvgItem 通过 setElementId 提供了仅渲染 SVG 文件一部分的方法。如果调用 setElementId() 方法,则只渲染具有传递 id 的 SVG 元素(及其子元素)。这为选择性地渲染包含多个离散元素的较大 SVG 文件提供了一种方便的方法。例如,以下代码仅从包含完整牌组的 SVG 文件中渲染 jokers

renderer = QSvgRenderer("SvgCardDeck.svg")
black = QGraphicsSvgItem()
red = QGraphicsSvgItem()
black.setSharedRenderer(renderer)
black.setElementId("black_joker")
red.setSharedRenderer(renderer)
red.setElementId("red_joker")

可以通过直接操作项的转换矩阵来设置项的大小。

默认情况下,SVG 渲染使用 QGraphicsItem::DeviceCoordinateCache 模式进行缓存以加快项的显示。可以通过通过将 QGraphicsItem::NoCache 传递给 QGraphicsItem::setCacheMode() 方法来禁用缓存。

另请参阅

QSvgWidget Qt SVG C++ 类 QGraphicsItemQGraphicsView

注意

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

property elementId*: str#

此属性包含元素的XML ID。

访问函数
property maximumCacheSize*: QSize#

此属性包含此项目的设备坐标缓存的最大尺寸。

访问函数
__init__([parentItem=None])#
参数:

parentItemQGraphicsItem

使用指定的 parent 构建一个新SVG项目。

__init__(fileName[, parentItem=None])
参数:

使用指定的 parent 构建一个新项目,并加载指定 fileName 的SVG文件内容。

elementId()#
返回类型:

str

返回正在渲染的元素的XML ID。如果正在渲染整个文件,返回空字符串。

另请参阅

setElementId()

属性 elementId* 的获取器。

isCachingEnabled()#
返回类型:

bool

请用 QGraphicsItem::cacheMode() 代替。

maximumCacheSize()#
返回类型:

QSize

返回此物品当前设备坐标缓存的最大尺寸。如果使用 QGraphicsItem::DeviceCoordinateCache 模式缓存项目,则当项目在设备坐标中的扩展大于最大尺寸时,将跳过缓存。

默认最大缓存大小是1024x768。QPixmapCache::cacheLimit() 提供整个缓存的累计范围,而 maximumCacheSize() 指的是特定项目的最大缓存大小。

属性 maximumCacheSize 的获取器。

renderer()#
返回类型:

QSvgRenderer

返回当前使用的 QSvgRenderer

setCachingEnabled(arg__1)#
参数:

arg__1 - bool

请使用 QGraphicsItem::setCacheMode()。将此函数传递 true 相当于 QGraphicsItem::setCacheMode(QGraphicsItem::DeviceCoordinateCache)。

另请参阅

isCachingEnabled()

setElementId(id)#
参数:

id - str

将元素的 XML ID 设置为 id

另请参阅

elementId()

属性 elementId 的设置器。

setMaximumCacheSize(size)#
参数:

size - QSize

将项目的最大设备坐标缓存大小设置为 size。如果项目使用 QGraphicsItem::DeviceCoordinateCache 模式进行缓存,并且项目的设备坐标扩展大于 size,则将绕过缓存。

缓存对应于用于缓存渲染结果的 QPixmap。使用 QPixmapCache::setCacheLimit() 来设置整个缓存的限制,并在设置单个项目的缓存大小时使用 setMaximumCacheSize()。

属性 maximumCacheSize 的设置器。

setSharedRenderer(renderer)#
参数:

renderer - QSvgRenderer

renderer 设置为-item上的共享 QSvgRenderer。通过使用此方法,可以在多个项目上共享同一 QSvgRenderer。这意味着SVG文件只会解析一次。QSvgRenderer传递给此方法的实例必须在使用此项目的时间内存在。