python 计时器

今天做自动化界面工具的时候需要用到计时器,查阅了一下,发现以下的这位博友写的很简洁方便且实用

https://blog.csdn.net/qfxx_CSDN/article/details/81412465

以下为源码:

from PyQt5.QtWidgets import QWidget,QLabel,QPushButton,QGridLayout,QApplication
from PyQt5.QtCore import QTime,QTimer
import sys

class ShowTime(QWidget):
    def __init__(self):
        super().__init__()
        
        self.isTimeStart=False    #标记时间是否开始计时
        
        self.setWindowTitle("QLable 显示计时时间")
        self.lable_time=QLabel('运行时间:',self)
        self.lable_time_val=QLabel('00:00:00',self)
        
        self.btn_start=QPushButton('开始显示')
        self.btn_stop=QPushButton('停止计时')
        
        
        #布局
        self.mainLayout=QGridLayout(self)
        self.mainLayout.addWidget(self.lable_time,0,0,1,1)
        self.mainLayout.addWidget(self.lable_time_val,0,1,1,2)
        
        self.mainLayout.addWidget(self.btn_start,1,1,1,1)
        self.mainLayout.addWidget(self.btn_stop,1,2,1,1)
        
        #创建定时器对象和时间对象
        self.timer=QTimer()         #
        self.timeClock=QTime()
        
        #信号与槽
        self.btn_start.clicked.connect(self.timestart)
        self.timer.timeout.connect(self.addtime)
        self.btn_stop.clicked.connect(self.timestop)
        
    def timestart(self):            #启动计时
        if not self.isTimeStart:
            self.timeClock.setHMS(0,0,0)  #初始时设置时间为  000000
            self.timer.start(1000)         #启动定时器,定时器对象每隔一秒发射一个timeout信号
        self.isTimeStart=True

    def addtime(self):      #计时时间增一秒,并显示在QLable上
        self.timeClock=self.timeClock.addMSecs(1000)   #时间增加一秒
        self.lable_time_val.setText(self.timeClock.toString("hh:mm:ss"))   #标签显示时间
    
    def timestop(self):    #停止计时
        if self.isTimeStart:
            self.timer.stop()
            self.isTimeStart=False  
            
if __name__=="__main__":
    app=QApplication(sys.argv)
    demo=ShowTime()
    demo.show()
    sys.exit(app.exec())

猜你喜欢

转载自www.cnblogs.com/juan-F/p/9475723.html