PySide6.QtSvgWidgets.QGraphicsSvgItem

class QGraphicsSvgItem

QGraphicsSvgItem 类是一个 QGraphicsItem,可用于渲染 SVG 文件的内容。更多

PySide6.QtSvgWidgets.QGraphicsSvgItem 的继承图

概要

属性

方法

注意

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

详细描述

警告

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

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

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

QGraphicsSvgItem 提供了一种通过 setElementId 仅渲染 SVG 文件部分内容的方式。如果调用了 setElementId() 方法,则只会渲染具有传递的 id 的 SVG 元素(及其子元素)。这为选择性渲染包含多个离散元素的大型 SVG 文件提供了一种便捷的方式。例如,以下代码仅从包含整副卡片的 SVG 文件中渲染小丑:

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。

Access functions:
property maximumCacheSizeᅟ: QSize

此属性保存此项目的设备坐标缓存的最大大小。

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

parentItemQGraphicsItem

使用给定的parent构造一个新的SVG项目。

__init__(fileName[, parentItem=None])
Parameters:

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

elementId()
Return type:

字符串

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

另请参阅

setElementId()

属性 elementIdᅟ 的获取器。

isCachingEnabled()
Return type:

布尔

请使用 QGraphicsItem::cacheMode() 代替。

maximumCacheSize()
Return type:

QSize

返回此项的当前设备坐标缓存的最大大小。如果使用QGraphicsItem::DeviceCoordinateCache模式缓存此项,当此项在设备坐标中的扩展大于最大大小时,将绕过缓存。

默认的最大缓存大小为1024x768。QPixmapCache::cacheLimit() 提供了整个缓存的累积限制,而 maximumCacheSize() 指的是此特定项目的最大缓存大小。

属性 maximumCacheSizeᅟ 的获取器。

renderer()
Return type:

QSvgRenderer

返回当前使用的 QSvgRenderer

setCachingEnabled(caching)
Parameters:

缓存 – 布尔值

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

另请参阅

isCachingEnabled()

setElementId(id)
Parameters:

id – str

将元素的XML ID设置为id

另请参阅

elementId()

属性 elementIdᅟ 的设置器。

setMaximumCacheSize(size)
Parameters:

大小QSize

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

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

属性 maximumCacheSizeᅟ 的设置器。

setSharedRenderer(renderer)
Parameters:

rendererQSvgRenderer

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