程序段的循环定时执行
发布时间:2025-06-24 18:13:55 作者:北方职教升学中心 阅读量:928
内存清理、脚本任务运行、
所属的专栏:PyQt5桌面应用开发,零基础到进阶应用实战
景天的主页:景天科技苑
文章目录
- PyQt5事件机制
- PyQt5事件处理的API
- PyQt5事件机制演练
- PyQt5定时器
- 定时器的操作方法有两种
- (1)利用每个对象包含的timerEvent函数
- (2)利用定时器模块QTimer
PyQt5事件机制
PyQt为事件处理提供了两种机制:高级的信号与槽机制,以及低级的事件处理机制。
常见事件类型:
键盘事件:按键按下和松开。
PyQt5事件处理的API
PyQt5事件机制演练
importsysfromPyQt5.Qt import*#通过继承,重新notify方法#事件会分发给对象里面的notify方法classApp(QApplication):#notify第一个参数是控件类型(事件接收者),第二个是事件类型defnotify(self,recevier,evt):#notify会监控所有的事件,对事件进行分发。创建和使用定时器的方法以及一些实际应用案例。为了打印鼠标点击按钮产生的事件,我们进行了过滤#过滤事件接收者是按钮,事件类型是鼠标按钮按下#evt属于QEvent类型。程序段的循环定时执行。importsysfromPyQt5.Qt import*classwin(QWidget):#创建一个类,为了集成控件# 增加参数接收*args, **kwargsdef__init__(self,*args,**kwargs):# 当我们继承某个类时,需要调用父类构造方法super().__init__(*args,**kwargs)self.setWindowTitle('定时器的使用')self.resize(300,300)self.num=0self.setup_ui()defsetup_ui(self):#添加个标签,初始化标签self.lable =QLabel(self)self.lable.move(120,120)self.lable.setStyleSheet("font-size: 28px;")self.timer =QTimer(self)# 初始化一个定时器# 设置计时间隔;单位毫秒self.timer.setInterval(1000)self.timer.timeout.connect(self.operate)# 每次计时到时间时发出信号#启动定时器,也可以在这里设置时间间隔,例如:self.timer.start(1000) 表示每秒执行一次self.timer.start()#定时器要执行的动作defoperate(self):self.num=self.num+1print(self.num)#动态设置标签显示数字self.lable.setText(str(self.num))#设置定时器停止阈值ifself.num ==5:print("计时停止")self.timer.stop()if__name__=='__main__':app=QApplication(sys.argv)#创建应用window=win()window.show()sys.exit(app.exec_())
运行

当num数值增加到5时,定时器停止
