qt界面程序中相应鼠标QMouseEvent的pos()和gloabalPos()的含义

最近在写一个小工具,功能是读取图片并在图上画矩形框,界面如下图所示:


这里主要讲下期间遇到的下面代码引起的问题,代码见下图:


我最初的想法是这样的,当鼠标按下的时候,获取鼠标的位置,然后记录在pointStart中,然后移动鼠标的时候将当前鼠标位置记录在pointEnd中,并通过update不断刷新让我鼠标移动到哪儿都会显示相应的矩形,如第一张图所示。然后就遇到他丫的问题了,每次我鼠标按下的位置和画出矩形框的左上角位置都差那么点,然后就去找答案。后来发现问题出在两个地方,一个是pos()的含义没有理解清楚,二是在默认创建的MainWindow在标题栏(在第一张图中就是MainWindow标题所在的区域)和实际内容区域(在第一张图中即是灰色区域)的中间还有一个叫工具栏的东西,在第一张图中无法看到,因为我已经把它给删除了,在ui设计器中选中那个区域即可删除。下面具体讲下怎么回事。

首先说下pos()和globalPos()的含义。globalPos的含义顾名思义,就是全球坐标,即是鼠标光标所在点在整个电脑桌面坐标系下的坐标,以电脑左上角为原点,横着的为x,纵为y。。后续更新先去吃饭

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值