- QTimer介绍
主要内容 #
完成效果 #
完成本节课程,能学会利用Qtimer使用单次的或者多次的定时器效果。
效果如下:
收获 #
学习完本节内容,我们会知道如何创建QTimer控件,以及切换单次计时与多次计时功能。
1.QTimer介绍 #
PyQt5中QTimer类为计时器提供了高级编程接口。 要使用它,请创建一个QTimer,将其超时信号连接到适当的槽函数,
然后调用start()。从那时起,它将以恒定的时间间隔发出超时信号。以下是QTimer的应用示例:
# 注意,以下包都要导入,后面内容会用到 from PyQt5.QtWidgets import QLabel, QWidget, QApplication from PyQt5.QtCore import QTimer import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.label = QLabel('显示当前时间', self) # 创建一个标签,并设置文本 self.label.move(100,100) # 移动标签的位置 self.timer = QTimer(self) # 创建一个定时器实例 self.timer.timeout.connect(self.showStep) # 计时结束时,将计时器超时信号连接到槽函数showStep self.timer.start(1000) # 启动计时器,并设置超时时间为1000毫秒也即1秒 self.timer.setSingleShot(False) # True表示只进行单次计时,False表示多次计时 self.step=0 # 初始化步数为0 # 设置窗口的位置和大小,前两个参数表示离屏幕左上角的坐标,后两个参数表示窗口的大小 self.setGeometry(300, 300, 500, 500) self.setWindowTitle('QPixmap') # 设置窗口的标题 self.show() # 显示窗口 def showStep(self): self.step +=1 # 每次调用步数+1 self.label.setText('当前是第{}步'.format(str(self.step))) # 让标签显示当前是多少步 app = QApplication(sys.argv) # 创建应用程序 ex = Example() # 创建窗口对象 sys.exit(app.exec_()) # 设置关闭窗口后结束进程
拓展练习:尝试将self.timer.setSingleShot(False)参数改为True,并运行程序比较有何不同。
小结 #
习题 #
- 习题1:尝试更改超时时间为3000毫秒,运行程序比较有何不同。
- 习题2:尝试更改showStep槽函数,改为self.step +=100。