作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
QGraphicsItem 是场景中 item 的基类。图形视图提供了一些典型形状的标准 item,例如:矩形 ( QGraphicsRectItem )、椭圆 ( QGraphicsEllipseItem ) 、文本项 ( QGraphicsTextItem )。
当这些不满足需求时(例如:在一些复杂的工作流场景中),往往需要自定义,通常的做法就是继承 QGraphicsItem。
自定义 QGraphicsItem
要实现自定义 item,需要覆盖 QGraphicsItem 的两个纯虚函数:
- void paint()
- 以本地坐标绘制 item 的内容
- QRectF boundingRect()
- 将 item 的外边界作为矩形返回
- 由 QGraphicsView 调用以确定什么区域需要重绘
除此之外,可能还需要附加其他需求,例如:
- QPainterPath shape() - item 的形状
- 由 contains()