pyqt获取鼠标相对位置绝对位置
目录
我用的以窗口为参考的鼠标坐标
print('move to:', mE.windowPos().x(), mE.windowPos().y())
1.获取指针对象的桌面位置坐标:QCursor.pos()
指针类的pos(),返回QPoint(w,h)
-
如果要获取指针单个值可以x(),y()来调用
例如:
print(QCursor.pos().x())
print(QCursor.pos().y())
2.指针位置的设置
-
设置鼠标指针位置:QCursor.setPos(x,y)
鼠标指针会移动到设置的x,y点
END
3.鼠标跟踪
-
查看鼠标是否被跟踪:hasMouseTracking()
返回True,False。
例子看出默认是False。
-
重写mouseMoveEvent(QMouseEvent)方法:
用来调用鼠标的事件;参数是鼠标事件类对象。
例如图片例子中:
def mouseMoveEvent(self, mE):
print('moving...')参数mE,是QMouseEvent类对象,(mEvent = QMouseEvent)
-
setMouseTracking(blool),设置是否开启鼠标跟踪。(其实只对鼠标没有按下时有用,当鼠标键按下时即使设置False,仍然会调用跟踪函数)。
参数为True时开启
参数为False时关闭。
例如:self.setMouseTracking(True)
可以看出有两种情况可以调用此函数:
①即使没有开启鼠标跟踪,当在控件内按下鼠标键移动时,会调用鼠标移动事件函数mouseMoveEvent(),
②开启鼠标跟踪,此时不按鼠标键,在控件范围内移动鼠标就会调用mouseMoveEvent()函数。
END
4.鼠标事件的相关函数
-
mouseMoveEvent(QMouseEvent):参数鼠标移动事件对象的函数可以获得很多的数据。
①获取鼠标相对桌面的坐标:globalPos()
当鼠标移动时,鼠标事件对象的globalPos()返回鼠标相对桌面的位置类型QPoint(x,y)
print('mouse is moving...',mE.globalPos())
-
如果要输出数值使用x(),y()函数。
print('move to:', mE.globalPos().x(),mE.globalPos().y())
或,print('move to:', mE.globalX(), mE.globalY())
-
获取鼠标相对控件的坐标:
print('move to:', mE.localPos().x(),mE.localPos().y())
-
获取以屏幕为参考的鼠标坐标
获取以窗口为参考的鼠标坐标
print('move to:', mE.screenPos().x(), mE.screenPos().y())
print('move to:', mE.windowPos().x(), mE.windowPos().y())
文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/126743300
- 点赞
- 收藏
- 关注作者
评论(0)