PyQt5-如何操作鼠标事件

 时间:2024-10-29 05:35:46

鼠标事件函数的重写,鼠标移动,按下,释放相关功能。

1.构建窗口框架

1、当鼠标在控件内执行特定动作时,系统会发出信息,这个消息可以用特定的函数监听到。通过重写监听的函数做出一些想要的功能。首先,导入需要的模块;创建应用程序对象;fromPyQt5.Qtimport*importsysapp=QApplication(sys.argv)sys.exit(app.exec_())

PyQt5-如何操作鼠标事件

2、自定义一个类继承QWidget类;实例化一个顶层窗口。

PyQt5-如何操作鼠标事件

2.鼠标进入和离开窗口

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

PyQt5-如何操作鼠标事件

2、leaveEvent(QEvent)鼠标离开时触发。鼠标离开控件时执行此函数,重写此函数添加更多功能。例如:defleaveEvent(self,QEvent):print('鼠标离开控件')self.setStyleSheet('background-color:red')

PyQt5-如何操作鼠标事件

3.鼠标按下和释放

1、mousePressEven隋茚粟胫t(QMouseEvent)鼠标按下执行此函数;例如添加一个标签:defsetup_ui(self):l锾攒揉敫ab=QLabel(self)lab.setStyleSheet('font:20px')鼠标点击时标签显示点击位置:defmousePressEvent(self,evt):#evt=QMouseEventlab=self.findChild(QLabel)lab.setText(f'按下鼠标位置:{evt.globalX()},{evt.globalY()}')lab.adjustSize()

PyQt5-如何操作鼠标事件

2、mouseReleaseEvent(self,QMouseEvent),鼠标释放时执行此函数;鼠标释放时执行此函数,重写此函数添加更多功能。defmouseReleaseEvent(self,evt):lab2=self.findChild(QLabel,'2')lab2.setText(f'松开鼠标位置:{evt.globalX()},{evt.globalY()}')lab2.adjustSize()

PyQt5-如何操作鼠标事件

4.双击鼠标

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

PyQt5-如何操作鼠标事件

2、实例化标签。此时双击标签就能执行事件函数,打开网址。双击仅作用在标签上。lab1=Lab1(self);lab1.move(5,5)lab1.setStyleSheet('background-color:red;font:20px')lab1.setText('百度脑图')lab2=Lab2(self);lab2.move(5,30)lab2.setStyleSheet('background-color:red;font:20px')lab2.setText('百度经验')

PyQt5-如何操作鼠标事件

5.鼠标按下时移动

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

PyQt5-如何操作鼠标事件

2、setMouseTracking(True),设置鼠标追踪为True,没有按下也能执行mouseMoveEvent函数。

PyQt5-如何操作鼠标事件

如何实现html5 canvas图片移动到鼠标点击位置 如何安装Microsoft .NET Framework 3.5? 红旗LINUX操作系统怎么安装--图形安装配置 jxbrowser的破戒与各平台版本使用测试 易语言怎么显示扩展组件和外部组件?
热门搜索
女武神驱动动漫 mg汽车报价及图片 717电影 蒙娜丽莎的微笑图片 双排脚手架图片