本文用 PyQt5 的QTimer类的两种方式实现电子时钟,供大家参考,具体内容如下
【效果图】
【知识点】
QTimer类提供了定时器信号/槽和单触发定时器。
它在内部使用定时器事件来提供更通用的定时器。
QTimer很容易使用:创建一个QTimer,使用start()来开始并且把它的timeout()连接到适当的槽。当这段时间过去了,它将会发射timeout()信号。
【实现】
1、定时器信号/槽方式
class MyTimer(QWidget): def __init__(self, parent = None): # ...... #新建一个QTimer对象 self.timer = QTimer() self.timer.setInterval(1000) self.timer.start() # 信号连接到槽 self.timer.timeout.connect(self.onTimerOut) # 定义槽 def onTimerOut(self): self.lcd.display(time.strftime("%X",time.localtime()))
完整代码:
import sys import time from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class MyTimer(QWidget): def __init__(self, parent = None): super(MyTimer, self).__init__(parent) self.resize(200, 100) self.setWindowTitle("QTimerDemo") self.lcd = QLCDNumber() self.lcd.setDigitCount(10) self.lcd.setMode(QLCDNumber.Dec) self.lcd.setSegmentStyle(QLCDNumber.Flat) self.lcd.display(time.strftime("%X",time.localtime())) layout = QVBoxLayout() layout.addWidget(self.lcd) self.setLayout(layout) #新建一个QTimer对象 self.timer = QTimer() self.timer.setInterval(1000) self.timer.start() # 信号连接到槽 self.timer.timeout.connect(self.onTimerOut) # 定义槽 def onTimerOut(self): self.lcd.display(time.strftime("%X",time.localtime())) app = QApplication(sys.argv) t = MyTimer() t.show() sys.exit(app.exec_())
2、定时器事件方式
class MyTimer(QWidget): def __init__(self, parent = None): # ...... #新建一个QTimer对象 self.timer = QBasicTimer() # QTimer()貌似不行,不知何故? self.timer.start(1000, self) # 覆写计时器事件处理函数timerEvent() def timerEvent(self, event): self.lcd.display(time.strftime("%X",time.localtime()))
完整代码:
import sys import time from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class MyTimer(QWidget): def __init__(self, parent = None): super(MyTimer, self).__init__(parent) self.resize(200, 100) self.setWindowTitle("QTimerDemo") self.lcd = QLCDNumber() self.lcd.setDigitCount(10) self.lcd.setMode(QLCDNumber.Dec) self.lcd.setSegmentStyle(QLCDNumber.Flat) self.lcd.display(time.strftime("%X",time.localtime())) layout = QVBoxLayout() layout.addWidget(self.lcd) self.setLayout(layout) #新建一个QTimer对象 self.timer = QBasicTimer() # QTimer()貌似不行,不知何故? self.timer.start(1000, self) # 覆写计时器事件处理函数timerEvent() def timerEvent(self, event): if event.timerId() == self.timer.timerId(): self.lcd.display(time.strftime("%X",time.localtime())) else: super(WigglyWidget, self).timerEvent(event) app = QApplication(sys.argv) t = MyTimer() t.show() sys.exit(app.exec_())
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“PyQt5使用QTimer实现电子时钟”评论...
更新日志
2024年10月07日
2024年10月07日
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]