python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例

  

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_ ())      

运行效果图

  

 python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例

  

代码分析

  

首先初始化一个定时器,把定时器的超时信号与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详细使用方法与实例