Qt的QGraphics View Framework有三个基本构成元素——QGraphicsView、QGraphicsScene和QGraphicsItem,本文来讲讲这个QGraphicsItem,不过在学习它之前最好先搞清楚它们三者之间的关系,详情见视图框架组成成员的关系
我们在了解它时从一下几个方面下手,分别是现有Item类、位置信息、转换、绘制
现有item类
这些都是Qt提供现有的item类,对绝大多数的需求实现了支持:
QGraphicsEllipseItem——圆形类的元素(QGraphicsRectItem,这自然就是矩形类的元素)
QGraphicsLineItem——线条类的元素
QGraphicsPathItem——路径类的元素(注意:路径本身是不可见的)
QGraphicsPixmapItem——图片类的元素
QGraphicsPolygonItem——多边形类的元素
QGraphicsSimpleTextItem——简单文本类的元素(如一段普通的文本)
QGraphisTextItem——高级文本浏览类的元素(如带有样式的文本段落)
对于基本操作而言这些足够了,如果要定义复杂的图形元素,则需要创建继承QGraphicsItem的子类,并且重写连个虚函数,分别是boundingRect()和paint(),主要是用来返回获取绘制的区域以及实现item的具体自绘。如下所示:
class CustItem : public QGraphicsItem
{
public:
QRectF boundingRect()
{