QT 实现可以拖拽边框改变大小的QGraphicsItem矩形

1 篇文章 0 订阅

写在前面:本人是菜鸟,如果有不对的欢迎指正。

QT版本:5.12.1

VS版本:2017

编辑器:msvc2017_64

之前想实现在QGraphicsView里面绘制一个矩形,然后拖拽边框进行放大缩小,我觉得这种东西网上应该好多资源,不过我发现大部分是思路。所以我想写一个简单的Demo。

这个思路可以参考把窗口设置为无边框后怎么改变窗口大小。(把矩形划分为9宫格,然后去判断相应的动作)

在Item是有Hover参数的。(亲,别忘了设置setAcceptHoverEvents(true); )

然后在hover事件中判断鼠标的位置,从而了解需要的操作,一旦鼠标按下,就进入了一个状态,控制上下变化,或者左右?

在这个Demo中,矩形分头、尾、宽度。头和尾的拖动独立,宽度拖动时保持对称。

制作Demo时的问题,欢迎大家讨论:

1,如果把矩形拖得特别大,那么我的Hover事件就失效了,但是通过改变scene的大小可以让我的矩形拖得更大。。我没有明白这里的原因。

2,在写鼠标Move事件的时候,改变矩形有两种方法,一种是通过鼠标的偏差值,一种是用最终位置。在这里用偏差值的话会卡,所以我用了鼠标最终位置,这两种方法有什么比较嘛?

好了,最后附上下载地址。

CSDN下载地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值