python PYQT操作鼠标形状事件,鼠标跟踪事件

 鼠标形状事件

from PyQt5.Qt import *
import sys

app = QApplication(sys.argv)
win  = QWidget()
win.setWindowTitle("鼠标操作")
win.resize(500, 500)
pixmap =QPixmap('1.jpg')
new_pixmap = pixmap.scaled(50, 50) # 调整图片的大小
cursor = QCursor(new_pixmap, 0, 0) #0,0代表到窗口立马变成箭头
win.setCursor(cursor)
win.unsetCursor() # 重置鼠标
# win.setCursor(Qt.BusyCursor)  # 用户操作区鼠标繁忙

lable = QLabel(win)
lable.setText("PYQT5好难")
lable.resize(100, 100)
lable.setStyleSheet("background-color: green;")
lable.setCursor(Qt.BusyCursor) # Lable区域鼠标繁忙
lable.unsetCursor() # 重置鼠标
win.show()
sys.exit(app.exec_())


# setCursor设置鼠标的方法、
# Qt.BusyCursor 设置什么样子的鼠标
# unsetCursor 重置鼠标,是鼠标恢复原样

鼠标跟踪事件

                        鼠标不跟踪案例 

from PyQt5.Qt import *
import sys
class MyWindow(QWidget):
    # mouseMoveEvent鼠标左键按下去,则开始移动
    def mouseMoveEvent(self, a0) -> None:
        print("鼠标移动了")
app = QApplication(sys.argv)
win  = MyWindow()
win.setWindowTitle("鼠标操作")
win.resize(500, 500)
print("鼠标是否为跟踪状态:", win.hasMouseTracking()) # False为不跟踪状态
win.show()
sys.exit(app.exec_())

                        鼠标跟踪案例  setMouseTracking

from PyQt5.Qt import *
import sys
class MyWindow(QWidget):
    # mouseMoveEvent鼠标左键按下去,则开始移动
    def mouseMoveEvent(self, a0) -> None:
        print("鼠标移动了")
app = QApplication(sys.argv)
win  = MyWindow()
win.setWindowTitle("鼠标操作")
win.resize(500, 500)
win.setMouseTracking(True) # 设置鼠标为跟踪状态
print("鼠标是否为跟踪状态:", win.hasMouseTracking())
win.show()
sys.exit(app.exec_())

                        获取鼠标的位置  分为:全局 和 局部

from PyQt5.Qt import *
import sys
class MyWindow(QWidget):
    # mouseMoveEvent鼠标左键按下去,则开始移动
    def mouseMoveEvent(self, a0) -> None:
        print("鼠标移动了")
        # print("鼠标移动的位置为:",a0.globalPos(),"globalPos方法为全局,从桌面左上角开始算起始位置")
        print("鼠标的移动位置为:",a0.localPos(),"localPos方法为局部,从用户操作区左上角开始为起始位置")
app = QApplication(sys.argv)
win  = MyWindow()
win.setWindowTitle("鼠标操作")
win.resize(500, 500)
win.setMouseTracking(True) # 设置鼠标为跟踪状态
print("鼠标是否为跟踪状态:", win.hasMouseTracking())
win.show()
sys.exit(app.exec_())

                                      案例  内容跟鼠标位置移动

from PyQt5.Qt import *
import sys
class MyQwidget(QWidget):
    def mouseMoveEvent(self, a0) -> None:
        print("鼠标的位置为:",a0.localPos())
        lable.move(a0.localPos().x(), a0.localPos().y())

app = QApplication(sys.argv)
win = MyQwidget()
win.setWindowTitle("鼠标操作的相关案例")
win.resize(500, 500)
win.move(200, 200)
win.setMouseTracking(True)
lable = QLabel(win)
lable.setText("社会我顺哥")
lable.move(100, 100)
lable.setStyleSheet("background-color: cyan")

win.show()

sys.exit(app.exec_())

文章来源地址https://uudwc.com/A/pLgmr

原文地址:https://blog.csdn.net/lizhenqi123456/article/details/131611841

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年07月09日 09:10
下一篇 2023年07月09日 09:13