QT中鼠标位置获取问题之event->globalPos()与pos()函数

最近在学习QT,准备做个界面程序,在获取鼠标位置信息时,查了好多资料,对于event->globalPos()与pos()函数都说的不是很清楚。

通过程序测试,最后是搞清楚了,在这利用形象的图解来代替文字向大家描述,更易理解些。

widget窗口是带边框的类型,如下图1(上边框和侧边框都是有厚度的)


                             图.1



1.而由event->globalPos()获取的鼠标位置是鼠标偏离电脑屏幕左上角(x=0,y=0)的位置

2.由pos()获取的位置是主窗口(widget窗口)左上角(边框的左上角,外左上角)相对于电脑屏幕的左上角的(x=0,y=0)偏移位置

3.子窗口的位置属性,label->setGeometry(QRect(x,y,w,h));

其中x,y如图所示,是子窗口label左上角相对于主窗口widget窗口的左上角(除去去边框,内左上角)的偏移位置;如下图2所示,各位置信息。

                                     图.2


在计算鼠标相对于子窗口(label控件)位置时,要综合考虑这些位置关系,并且考虑边框的存在与否,当然有更好的获取位置信息的方法,望指点。


  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值