PySide6.QtSvgWidgets.QGraphicsSvgItem¶
- class QGraphicsSvgItem¶
QGraphicsSvgItem类是一个 QGraphicsItem,可用于渲染 SVG 文件的内容。更多…概要¶
属性¶
方法¶
def
__init__()def
elementId()def
renderer()def
setElementId()
注意
本文档可能包含从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()方法来禁用缓存。
另请参阅
QSvgWidgetQt SVG C++ 类QGraphicsItemQGraphicsView注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property elementIdᅟ: str¶
此属性保存元素的XML ID。
- Access functions:
此属性保存此项目的设备坐标缓存的最大大小。
- Access functions:
- __init__([parentItem=None])¶
- Parameters:
parentItem –
QGraphicsItem
使用给定的
parent构造一个新的SVG项目。- __init__(fileName[, parentItem=None])
- Parameters:
fileName – str
parentItem –
QGraphicsItem
使用给定的
parent构造一个新项目,并加载指定fileName的SVG文件内容。- elementId()¶
- Return type:
字符串
返回当前正在渲染的元素的XML ID。如果正在渲染整个文件,则返回空字符串。
另请参阅
属性
elementIdᅟ的获取器。- isCachingEnabled()¶
- Return type:
布尔
请使用 QGraphicsItem::cacheMode() 代替。
返回此项的当前设备坐标缓存的最大大小。如果使用QGraphicsItem::DeviceCoordinateCache模式缓存此项,当此项在设备坐标中的扩展大于最大大小时,将绕过缓存。
默认的最大缓存大小为1024x768。QPixmapCache::cacheLimit() 提供了整个缓存的累积限制,而 maximumCacheSize() 指的是此特定项目的最大缓存大小。
属性
maximumCacheSizeᅟ的获取器。- renderer()¶
- Return type:
返回当前使用的
QSvgRenderer。- setCachingEnabled(caching)¶
- Parameters:
缓存 – 布尔值
请使用 QGraphicsItem::setCacheMode() 代替。向此函数传递 true 相当于 QGraphicsItem::setCacheMode(QGraphicsItem::DeviceCoordinateCache)。
另请参阅
- setElementId(id)¶
- Parameters:
id – str
将元素的XML ID设置为
id。另请参阅
属性
elementIdᅟ的设置器。将项目的最大设备坐标缓存大小设置为
size。如果项目使用QGraphicsItem::DeviceCoordinateCache模式进行缓存,当项目在设备坐标中的扩展大于size时,缓存将被绕过。缓存对应于用于缓存渲染结果的QPixmap。使用QPixmapCache::setCacheLimit()来设置整个缓存的限制,并在为单个项目设置缓存大小时使用setMaximumCacheSize()。
属性
maximumCacheSizeᅟ的设置器。- Parameters:
renderer –
QSvgRenderer
将
renderer设置为项目上的共享QSvgRenderer。通过使用此方法,可以在多个项目上共享相同的QSvgRenderer。这意味着SVG文件只会被解析一次。传递给此方法的QSvgRenderer必须在使用此项目的整个期间存在。