您的位置:首页 > 编程语言 > Qt开发

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

2016-10-17 17:28 337 查看
最近在写一个小工具,功能是读取图片并在图上画矩形框,界面如下图所示:



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



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

首先说下pos()和globalPos()的含义。globalPos的含义顾名思义,就是全球坐标,即是鼠标光标所在点在整个电脑桌面坐标系下的坐标,以电脑左上角为原点,横着的为x,纵为y。。后续更新先去吃饭
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: