qt界面程序中相应鼠标QMouseEvent的pos()和gloabalPos()的含义
2016-10-17 17:28
337 查看
最近在写一个小工具,功能是读取图片并在图上画矩形框,界面如下图所示:
这里主要讲下期间遇到的下面代码引起的问题,代码见下图:
我最初的想法是这样的,当鼠标按下的时候,获取鼠标的位置,然后记录在pointStart中,然后移动鼠标的时候将当前鼠标位置记录在pointEnd中,并通过update不断刷新让我鼠标移动到哪儿都会显示相应的矩形,如第一张图所示。然后就遇到他丫的问题了,每次我鼠标按下的位置和画出矩形框的左上角位置都差那么点,然后就去找答案。后来发现问题出在两个地方,一个是pos()的含义没有理解清楚,二是在默认创建的MainWindow在标题栏(在第一张图中就是MainWindow标题所在的区域)和实际内容区域(在第一张图中即是灰色区域)的中间还有一个叫工具栏的东西,在第一张图中无法看到,因为我已经把它给删除了,在ui设计器中选中那个区域即可删除。下面具体讲下怎么回事。
首先说下pos()和globalPos()的含义。globalPos的含义顾名思义,就是全球坐标,即是鼠标光标所在点在整个电脑桌面坐标系下的坐标,以电脑左上角为原点,横着的为x,纵为y。。后续更新先去吃饭
这里主要讲下期间遇到的下面代码引起的问题,代码见下图:
我最初的想法是这样的,当鼠标按下的时候,获取鼠标的位置,然后记录在pointStart中,然后移动鼠标的时候将当前鼠标位置记录在pointEnd中,并通过update不断刷新让我鼠标移动到哪儿都会显示相应的矩形,如第一张图所示。然后就遇到他丫的问题了,每次我鼠标按下的位置和画出矩形框的左上角位置都差那么点,然后就去找答案。后来发现问题出在两个地方,一个是pos()的含义没有理解清楚,二是在默认创建的MainWindow在标题栏(在第一张图中就是MainWindow标题所在的区域)和实际内容区域(在第一张图中即是灰色区域)的中间还有一个叫工具栏的东西,在第一张图中无法看到,因为我已经把它给删除了,在ui设计器中选中那个区域即可删除。下面具体讲下怎么回事。
首先说下pos()和globalPos()的含义。globalPos的含义顾名思义,就是全球坐标,即是鼠标光标所在点在整个电脑桌面坐标系下的坐标,以电脑左上角为原点,横着的为x,纵为y。。后续更新先去吃饭
相关文章推荐
- Qt 事件 QMouseEvent 鼠标示例
- 用keybd_event & mouse_event & setcursorpos 摸拟键盘输入以及鼠标的移动。
- QT 嵌入exe应用程序 并获取鼠标事件 mouse keyboard event
- Qt鼠标双击事件mouseDoubleClickEvent(QMouseEvent* event)
- Qt学习: QPaintEvent和QMouseEvent的简单程序示例
- Qt中mouseMoveEvent和mousePressEvent实现鼠标滑动换label颜色
- Qt中mouseMoveEvent和mousePressEvent实现鼠标滑动换label颜色
- 【转】Qt中mouseMoveEvent和mousePressEvent实现鼠标滑动换label颜色
- 使用mouse_event模拟鼠标事件时,程序窗口失去焦点就失效
- Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案
- qt中mousemoveevent和mousepressevent实现鼠标滑动换label颜色...
- QT mouseMoveEvent事件(qmainwindow内追踪鼠标事件事件)
- QT中鼠标位置获取问题之event->globalPos()与pos()函数
- Qt鼠标事件QMouseEvent总结
- Qt简单程序1 QMousePressEvent
- QT中鼠标位置获取问题之event->globalPos()与pos()函数
- QT界面鼠标双击事件相应
- 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案
- QT mouseMoveEvent事件(qmainwindow内追踪鼠标事件事件)
- Qt中mouseMoveEvent和mousePressEvent实现鼠标滑动换label颜色