PyQt5学习笔记---多线程---定时器

定时器:

QTimer:提供了重复轮询和单词的的定时器

先创建QTimer的实例,将其timeout的信号连接到对应的槽,并调用start()。

常用方法

start(milliseconds)

启动或重新启动定时器,时间间隔为毫秒,如果定时器已经启动,将被停止并重新启动,若sigleShot为True,则只被激活一次

stop()

停止定时器

常用信号

singleShot

在给定的时间间隔后,调用一个槽函数发射此信号

timeout

当定时器超时发射此信号

#QTimer
# 表格控件实例
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import  *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys

class WinForm(QWidget):
    def __init__(self,parent=None):
        super(WinForm, self).__init__(parent)
        self.setWindowTitle("QTimer")
        self.listFile=QListWidget()
        self.lable=QLabel("显示当前时间")
        self.startBtn=QPushButton("start")
        self.endBtn = QPushButton("end")
        layout=QGridLayout()

        #初始化一个定时器
        self.timer=QTimer(self)
        #show Time方法
        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(layout)

    def showTime(self):
        #获取系统时间
        time=QDateTime.currentDateTime()
        #设置系统时间格式
        timeDisplay=time.toString("yyyy-MM-dd hh:mm:ss dddd")
        #在标签上显示时间
        self.lable.setText(timeDisplay)

    def startTimer(self):
        #设置时间间隔并启动定时器
        self.timer.start(1000)
        self.startBtn.setEnabled(False)
        self.endBtn.setEnabled(True)

    def endTimer(self):
        self.timer.stop()
        self.endBtn.setEnabled(False)
        self.startBtn.setEnabled(True)
        self.lable.setText("")

if __name__=="__main__":
    app=QApplication(sys.argv)
    #test 1
    # demp=WinForm()
    # demp.show()

    #test 2
    # lable=QLabel("hello pyqt 10s quit ")
    # #无边框窗口
    # lable.setWindowFlags(Qt.SplashScreen|Qt.FramelessWindowHint)
    # lable.show()
    # QTimer.singleShot(10000,app.quit)
    sys.exit(app.exec_())

 

你可能感兴趣的:(Qt5,python)