🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# QGraphicsSvgItem Class Reference ## [[QtSvg](index.htm) module] 该QGraphicsSvgItem将类是[QGraphicsItem](qgraphicsitem.html)可用于呈现的SVG文件的内容。[More...](#details) 继承[QGraphicsObject](qgraphicsobject.html)。 ### Methods * `__init__ (self, QGraphicsItem parent = None)` * `__init__ (self, QString fileName, QGraphicsItem parent = None)` * `QRectF boundingRect (self)` * `QString elementId (self)` * `bool isCachingEnabled (self)` * `QSize maximumCacheSize (self)` * `paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)` * `QSvgRenderer renderer (self)` * `setCachingEnabled (self, bool)` * `setElementId (self, QString id)` * `setMaximumCacheSize (self, QSize size)` * `setSharedRenderer (self, QSvgRenderer renderer)` * `int type (self)` * * * ## Detailed Description 该QGraphicsSvgItem将类是[QGraphicsItem](qgraphicsitem.html)可用于呈现的SVG文件的内容。 QGraphicsSvgItem将提供渲染SVG文件的方式上[QGraphicsView](qgraphicsview.html)。 QGraphicsSvgItem将可以通过传递要呈现给它的构造的SVG文件或通过显式设置一个共享的创建[QSvgRenderer](qsvgrenderer.html)就可以了。 请注意,设置[QSvgRenderer](qsvgrenderer.html)如果使用的QGraphicsSvgItem将不会使该项目采取渲染的所有权,因此,[setSharedRenderer](qgraphicssvgitem.html#setSharedRenderer)( )方法,一要确保的寿命[QSvgRenderer](qsvgrenderer.html)对象将至少只要该QGraphicsSvgItem将的。 QGraphicsSvgItem将提供经由setElementId渲染SVG文件的唯一部分的一种方法。如果[setElementId](qgraphicssvgitem.html#elementId-prop)( )方法被调用时,只有SVG元素(及其子女)具有传入ID将渲染器。这提供了选择性呈现包含多个离散元件的大的SVG文件的方便方法。例如,下面的代码将呈现从包含整个卡片组一个SVG文件只王牌: ``` [QSvgRenderer](qsvgrenderer.html) *renderer = new [QSvgRenderer](qsvgrenderer.html)(QLatin1String("SvgCardDeck.svg")); QGraphicsSvgItem *black = new QGraphicsSvgItem(); QGraphicsSvgItem *red = new QGraphicsSvgItem(); black->setSharedRenderer(renderer); black->setElementId(QLatin1String("black_joker")); red->setSharedRenderer(renderer); red->setElementId(QLatin1String("red_joker")); ``` 该项目的大小可以通过设定[setSize()](qrectf.html#setSize)的方法[bounding rectangle](qgraphicssvgitem.html#boundingRect)或通过直接操作的项目变换矩阵。 默认情况下, SVG渲染使用缓存[QGraphicsItem.DeviceCoordinateCache](qgraphicsitem.html#CacheMode-enum)模式用来加快项目的显示。缓存可以通过传递被禁用[QGraphicsItem.NoCache](qgraphicsitem.html#CacheMode-enum)到[QGraphicsItem.setCacheMode](qgraphicsitem.html#setCacheMode)()方法。 * * * ## Method Documentation ``` QGraphicsSvgItem.__init__ (self, QGraphicsItem parent = None) ``` 该_parent_的说法,如果不是没有,原因_self_通过Qt的,而不是PyQt的拥有。 构造具有给定一个新的SVG项目_parent_。 ``` QGraphicsSvgItem.__init__ (self, QString fileName, QGraphicsItem parent = None) ``` 该_parent_的说法,如果不是没有,原因_self_通过Qt的,而不是PyQt的拥有。 构造具有给定一个新项目_parent_并载入SVG文件中的内容与指定_fileName_。 ``` QRectF QGraphicsSvgItem.boundingRect (self) ``` [](qrectf.html) [从重新实现](qrectf.html)[QGraphicsItem.boundingRect](qgraphicsitem.html#boundingRect)( ) 。 返回此项目的边界矩形。 ``` QString QGraphicsSvgItem.elementId (self) ``` ``` bool QGraphicsSvgItem.isCachingEnabled (self) ``` ``` QSize QGraphicsSvgItem.maximumCacheSize (self) ``` [ ``` QGraphicsSvgItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None) ``` ](qsize.html) [从重新实现](qsize.html)[QGraphicsItem.paint](qgraphicsitem.html#paint)( ) 。 ``` QSvgRenderer QGraphicsSvgItem.renderer (self) ``` [](qsvgrenderer.html) [返回当前使用](qsvgrenderer.html)[QSvgRenderer](qsvgrenderer.html)。 ``` QGraphicsSvgItem.setCachingEnabled (self, bool) ``` ``` QGraphicsSvgItem.setElementId (self, QString id) ``` ``` QGraphicsSvgItem.setMaximumCacheSize (self, QSize size) ``` ``` QGraphicsSvgItem.setSharedRenderer (self, QSvgRenderer renderer) ``` Sets _renderer_是一个共享[QSvgRenderer](qsvgrenderer.html)该项目。通过使用此方法可以共享相同的[QSvgRenderer](qsvgrenderer.html)在一些项目。这意味着该SVG文件将被解析一次。[QSvgRenderer](qsvgrenderer.html)传递给这个方法有可能存在的,只要这个项目使用。 ``` int QGraphicsSvgItem.type (self) ``` 从重新实现[QGraphicsItem.type](qgraphicsitem.html#type)( ) 。