QGraphicsView

本文介绍了如何处理QGraphicsItem的大小不变性,获取视口大小和鼠标位置,强调了paint函数的实时刷新特性。重点讲解了继承关系中的可见性控制,以及如何正确设置父级和子级的可见性来实现线的显示与隐藏逻辑。
摘要由CSDN通过智能技术生成

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是否可见的时候,仍是不可见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值