定时器:
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_())