PyQt5-如何操作鼠标事件
鼠标事件函数的重写,鼠标移动,按下,释放相关功能。
1.构建窗口框架
1、当鼠标在控件内执行特定动作时,系统会发出信息,这个消息可以用特定的函数监听到。通过重写监听的函数做出一些想要的功能。首先,导入需要的模块;创建应用程序对象;from PyQt5.Qt import *import sysapp = QApplication(sys.argv)sys.exit(app.exec_())

2.鼠标进入和离开窗口
1、enterEvent(self,QEvent)函数,当鼠标进入控件时触发此函数。鼠标进入时执行此函数,重写此函数,添加更多功能。例如:def enterEvent(self,QEvent): print('鼠标进入控件') self.setStyleSheet('background-color:skyblue')

3.鼠标按下和释放
1、mousePressEvent(QMouseEvent)鼠标按下执行此函数;例如添加一个标签:def setup_ui(self): l锾攒揉敫ab=QLabel(self) lab.setStyleSheet('font:20px')鼠标点击时标签显示点击位置:def mousePressEvent(self,evt): #evt=QMouseEvent lab=self.findChild(QLabel) lab.setText(f'按下鼠标位置:{evt.globalX()},{evt.globalY()}') lab.adjustSize()

4.双击鼠标
1、mouseDoubleCli罕铞泱殳ckEvent(self,QMouseEvent),鼠标双击时执行此函数;例剧安颌儿如:双击标签打开一个网址;自定义两个类继承自QLabel,并重写mouseDoubleClickEvent()函数,加入打开网址的代码。这样才能使鼠标双击时作用在标签上。注意:如果在窗口类内直接重写事件函数,是作用在窗口上。import osclass Lab1(QLabel): def mouseDoubleClickEvent(self,QMouseEvent): os.system('"本地浏览器程序路径" http://naotu.baidu.com/')class Lab2(QLabel): def mouseDoubleClickEvent(self, QMouseEvent): os.system('"本地浏览器程序路径" https://jingyan.baidu.com/')

5.鼠标按下时移动
1、mouseMoveEvent猾诮沓靥(QMouseEvent),鼠标按下时移动时执行此函数。列如:按下鼠标移动时在窗口子控件标签显示鼠标移动位置。def setup_ui(self): lab=QLabel(self);lab.move(5,5) lab.setStyleSheet('background-color:red;font:20px')def mouseMoveEvent(self,evt): #evt=QMouseEvent pos=(evt.pos().x(),evt.pos().y()) lab=self.findChild(QLabel) lab.setText(f'鼠标位置:{pos}') lab.adjustSize()
