QTimer控件介绍
如果在应用程序中周期性地进行某项操作,比如周期性的检测主机的cpu值,则需要用到QTimer定时器,QTimer类提供了重复和单次的定时器,要使用定时器,需要先创建一个QTimer实例,将其超时信号连接到槽函数,并调用开始(),然后,定时器,会以恒定的间隔发出超时信号
当窗口的控件收到超时信号后,他就会停止这个定时器,这是在图形用户界面中实现复杂工作的一个典型用法,随着技术的进步,多线程在越来越多的平台上被使用,QTimer对象会被替代掉
QTimer类中的常用方法
方法 描述 开始(毫秒) 启动或重新启动定时器,时间间隔为毫秒,如果定时器已经运行,他将停止并重新启动,如果singleSlot信号为真,定时器仅被激活一次 Stop () 停止定时器QTimer类中常用的信号
信号 描述 singleShot 在给定的时间间隔后调用一个槽函数时发射此信号 超时 当定时器超时时发射此信号QTimer的使用实例
导入系统 从PyQt5。QtWidgets进口QWidget、QPushButton QApplication、QListWidget QGridLayout QLabel 从PyQt5。QtCore进口QTimer QDateTime 类WinForm (QWidget): def __init__(自我,父=None): 超级(WinForm上,自我). __init__(父) #设置标题 自我。setWindowTitle (QTimer演示) #实例化一些控件 self.listFile=QListWidget () self.lable=QLabel(“显示当前时间的) self.startBtn=QPushButton(“开始”) self.endBtn=QPushButton(“结束”) #栅格布的局 布局=QGridLayout () #初始化一个定时器 self.timer=QTimer () #定时器结束,触发showTime方法 self.timer.timeout.connect (self.showTime) #添加控件到栅格指定位置 layout.addWidget (self.lable, 0, 0, 1, 2) layout.addWidget (self.startBtn 1 0) layout.addWidget (self.endBtn 1 1) #开始结束按钮点击触发相应的槽函数 self.startBtn.clicked.connect (self.startTimer) self.endBtn.clicked.connect (self.endTimer) #设置布局方式 self.setLayout(布局) def showTime(自我): #获取系统当前时间 时间=QDateTime.currentDateTime () #设置系统时间的显示格式 timeDisplay=oString (“yyyy-MM-dd hh: mm: ss dddd”) #在标签上显示时间 self.lable.setText (timeDisplay) def开始时间(自我): #设置时间间隔并启动定时器 self.timer.start (1000) #设置开始按钮不可点击,结束按钮可点击 self.startBtn.setEnabled(假) self.endBtn.setEnabled(真正的) def endTimer(自我): #停止定时器 self.timer.stop () #结束按钮不可点击,开始按钮可以点击 self.startBtn.setEnabled(真正的) self.endBtn.setEnabled(假) if __name__==癬_main__”: 应用=QApplication (sys.argv) 形式=WinForm上() form.show () sys.exit (app.exec_ ())
运行效果图
代码分析
首先初始化一个定时器,把定时器的超时信号与showTime()槽函数连接起来
self.timer=QTimer(自我) self.timer.timeout.connect (self.showTime)
使用连接的槽函数显示当前时间,并在标签上显示系统当前的时间
def showTime(自我): #获取系统当前时间 时间=QDateTime.currentDateTime () #设置系统时间的显示格式 timeDisplay=oString (“yyyy-MM-dd hh: mm: ss dddd”) #在标签上显示时间 self.lable.setText (timeDisplay)
单击开始按钮,启动定时器,并使按钮失效
#设置时间间隔并启动定时器 self.timer.start (1000) #设置开始按钮不可点击,结束按钮可点击 self.startBtn.setEnabled(假) self.endBtn.setEnabled(真正的)
单击结束按钮,停止定时器,并使按钮失效
#停止定时器 self.timer.stop () #结束按钮不可点击,开始按钮可以点击 self.startBtn.setEnabled(真正的) self.endBtn.setEnabled (False)python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例