QGraphicsSvgItem Class Reference

[QtSvg module]

该QGraphicsSvgItem将类是QGraphicsItem可用于呈现的SVG文件的内容。More…

继承QGraphicsObject

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可用于呈现的SVG文件的内容。

QGraphicsSvgItem将提供渲染SVG文件的方式上QGraphicsView。 QGraphicsSvgItem将可以通过传递要呈现给它的构造的SVG文件或通过显式设置一个共享的创建QSvgRenderer就可以了。

请注意,设置QSvgRenderer如果使用的QGraphicsSvgItem将不会使该项目采取渲染的所有权,因此,setSharedRenderer( )方法,一要确保的寿命QSvgRenderer对象将至少只要该QGraphicsSvgItem将的。

QGraphicsSvgItem将提供经由setElementId渲染SVG文件的唯一部分的一种方法。如果setElementId( )方法被调用时,只有SVG元素(及其子女)具有传入ID将渲染器。这提供了选择性呈现包含多个离散元件的大的SVG文件的方便方法。例如,下面的代码将呈现从包含整个卡片组一个SVG文件只王牌:

  1. [QSvgRenderer]($docs-qsvgrenderer.html) *renderer = new [QSvgRenderer]($docs-qsvgrenderer.html)(QLatin1String("SvgCardDeck.svg"));
  2. QGraphicsSvgItem *black = new QGraphicsSvgItem();
  3. QGraphicsSvgItem *red = new QGraphicsSvgItem();
  4. black->setSharedRenderer(renderer);
  5. black->setElementId(QLatin1String("black_joker"));
  6. red->setSharedRenderer(renderer);
  7. red->setElementId(QLatin1String("red_joker"));

该项目的大小可以通过设定setSize()的方法bounding rectangle或通过直接操作的项目变换矩阵。

默认情况下, SVG渲染使用缓存QGraphicsItem.DeviceCoordinateCache模式用来加快项目的显示。缓存可以通过传递被禁用QGraphicsItem.NoCacheQGraphicsItem.setCacheMode()方法。


Method Documentation

  1. QGraphicsSvgItem.__init__ (self, QGraphicsItem parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造具有给定一个新的SVG项目parent

  1. QGraphicsSvgItem.__init__ (self, QString fileName, QGraphicsItem parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造具有给定一个新项目parent并载入SVG文件中的内容与指定fileName

  1. QRectF QGraphicsSvgItem.boundingRect (self)

从重新实现QGraphicsItem.boundingRect( ) 。

返回此项目的边界矩形。

  1. QString QGraphicsSvgItem.elementId (self)
  1. bool QGraphicsSvgItem.isCachingEnabled (self)
  1. QSize QGraphicsSvgItem.maximumCacheSize (self)

[

  1. QGraphicsSvgItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

]($docs-qsize.html)

从重新实现QGraphicsItem.paint( ) 。

  1. QSvgRenderer QGraphicsSvgItem.renderer (self)

返回当前使用QSvgRenderer

  1. QGraphicsSvgItem.setCachingEnabled (self, bool)
  1. QGraphicsSvgItem.setElementId (self, QString id)
  1. QGraphicsSvgItem.setMaximumCacheSize (self, QSize size)
  1. QGraphicsSvgItem.setSharedRenderer (self, QSvgRenderer renderer)

Sets renderer是一个共享QSvgRenderer该项目。通过使用此方法可以共享相同的QSvgRenderer在一些项目。这意味着该SVG文件将被解析一次。QSvgRenderer传递给这个方法有可能存在的,只要这个项目使用。

  1. int QGraphicsSvgItem.type (self)

从重新实现QGraphicsItem.type( ) 。