pyqt获取鼠标相对位置绝对位置

举报
风吹稻花香 发表于 2022/09/24 23:43:52 2022/09/24
【摘要】 目录 1.获取指针对象的桌面位置坐标:QCursor.pos() 2.指针位置的设置 3.鼠标跟踪 4.鼠标事件的相关函数 我用的以窗口为参考的鼠标坐标 print('move to:', mE.windowPos().x(), mE.windowPos().y()) 1.获取指针对象的桌面位置坐标:QCursor....

目录

1.获取指针对象的桌面位置坐标:QCursor.pos()

2.指针位置的设置

3.鼠标跟踪

4.鼠标事件的相关函数


我用的以窗口为参考的鼠标坐标

print('move to:', mE.windowPos().x(), mE.windowPos().y())

1.获取指针对象的桌面位置坐标:QCursor.pos()

指针类的pos(),返回QPoint(w,h)

  1. 如果要获取指针单个值可以x(),y()来调用

    例如:

    print(QCursor.pos().x())

    print(QCursor.pos().y())

2.指针位置的设置

  1. 设置鼠标指针位置:QCursor.setPos(x,y)

    鼠标指针会移动到设置的x,y点

    END

3.鼠标跟踪

  1. 查看鼠标是否被跟踪:hasMouseTracking()

    返回True,False。

    例子看出默认是False。

  2. 重写mouseMoveEvent(QMouseEvent)方法:

    用来调用鼠标的事件;参数是鼠标事件类对象。

    例如图片例子中:

    def mouseMoveEvent(self, mE):

       print('moving...')

    参数mE,是QMouseEvent类对象,(mEvent = QMouseEvent)

  3. setMouseTracking(blool),设置是否开启鼠标跟踪。(其实只对鼠标没有按下时有用,当鼠标键按下时即使设置False,仍然会调用跟踪函数)。

    参数为True时开启

    参数为False时关闭。

    例如:self.setMouseTracking(True)

    可以看出有两种情况可以调用此函数:

    ①即使没有开启鼠标跟踪,当在控件内按下鼠标键移动时,会调用鼠标移动事件函数mouseMoveEvent(),

    ②开启鼠标跟踪,此时不按鼠标键,在控件范围内移动鼠标就会调用mouseMoveEvent()函数。

    END

4.鼠标事件的相关函数

  1. mouseMoveEvent(QMouseEvent):参数鼠标移动事件对象的函数可以获得很多的数据。

    ①获取鼠标相对桌面的坐标:globalPos()

    当鼠标移动时,鼠标事件对象的globalPos()返回鼠标相对桌面的位置类型QPoint(x,y)

    print('mouse is moving...',mE.globalPos())

  2. 如果要输出数值使用x(),y()函数。

    print('move to:', mE.globalPos().x(),mE.globalPos().y())

    或,print('move to:', mE.globalX(), mE.globalY())

  3. 获取鼠标相对控件的坐标:

    print('move to:', mE.localPos().x(),mE.localPos().y())

  4. 获取以屏幕为参考的鼠标坐标

    获取以窗口为参考的鼠标坐标

    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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。