最近学习了下QGraphics系列,主要包括三个类: QGraphicsItem QGraphicsView 和 QGraphicsScene. 有关这3者的介绍请参阅Qt Assistant.下面对本人在使用过程中遇到的一些问题进行总结和回顾.
[1 ] QgraphicsView是可以设置成透明的.使用时,设置其styleSheet为透明如可
QString styleSheet = QObject::tr("background:transparent");
this->setStyleSheet(styleSheet);
下面这个是效果图.后面的图片是用Qt绘制的,因为我要在前端再做一些数据处理,因此设置view和背景图像大小一致,而用scene去添加QGraphicsItem
[2] QtGraphicsItem里面提供了一个方法boundingRect,其原型如下
virtual QRectF | boundingRect () |
该方法用于与Qt的绘制框架进行通信,当每次重绘item时,用于提示重绘的数据区的大小.
注意,该方法涉及到坐标的转换,因此每个Item的left()和top()坐标应该是0,以便方便进行重绘.