概述
作为一个可以使用svg文件的QGraphicsItem ,添加于QGraphicsScene,可使用QGraphicsView进行查看。
- 特点:
1. 提供SVG的渲染方式,可以使用SVG文件路劲进行构建对象;
2. 提供setElementId()渲染部分SVG文件,调用时,只用其设定元素和其子元素才会被渲染,对于大文件中为小元素进行渲染
3. setSize()设置大小
4. 默认使用 QGraphicsItem::DeviceCoordinateCache方式进行渲染,可通过 QGraphicsItem::setCacheMode()改变
- 工程文件:
QT += svg - 头文件:
include
- 继承:
QGraphicsObject - 注意:使用setSharedRenderer() 进行创建QGraphicsSvgItem.需要保证其中QSvgRenderer 对象声明周期包含QGraphicsSvgItem的生命周期
引用枚举
enum QGraphicsItem::CacheMode
Constant | 描述 |
---|---|
QGraphicsItem::NoCache | 默认方式,禁用缓存,需要时才调用QGraphicsItem::paint() |
QGraphicsItem::ItemCoordinateCache | 使用缓存,渲染质量削减,缓存不能连续显示,里面的item不能变形 |
QGraphicsItem::DeviceCoordinateCache | 在画图设备层使用缓存,可移动item,但不能旋转和修剪,如果item变形,将会自动重新生成,渲染质量处于最高水平 |
注意
每次平移、缩放都是基于当前平移位置和当前缩放大小的,因此一般程序中需要记录当前的位置的缩放的倍数,以便于下一次缩放,也可以获取当前item 的变化矩阵,获取当前缩放大小等信息