1、item的大小不会随场景缩放而改变
2、获取view显示的场景大小
mapToScene(QRect(0, 0, viewport()->width(),viewport()->height())).boundingRect()
3、获取鼠标位置下的item
在mouseReleaseEvent或者mousePressEvent事件中:
QList<QGraphicsItem*> itemsgroup =this->getRoScene()->items(event->scenePos());
4、paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)函数是实时刷新的,尽量不要往里面写函数,不然隔一会调用一次,容易卡。
5、继承关系下的Visible()关系
父不可见则子不可见,所以如果想让子的子可用,要先让父可见,然后才可以对子的子做操作。举个例子:
1是2的子,2是3的子,4是3的子。1和4之间有一连线。
实现要求:
隐藏3的时候线不见,显示3的时候线可见。线显示的判断是两端都可见的时候,线可见。
实现过程:
要想让线不显示,在分别在2和3里让各自的子(1、4)不可见,再让自身2、3不可见。
想让线显示,就必须先让2、3可见,再让1、4可见。
如果先让1、4可见,再让2、3可见,线是不会显示的。
因为线在做显示判断的时候,2、3不可见,1、4可见,但由于继承关系,获取1、4是否可见的时候,仍是不可见。