本文用 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.nmgbbs.com
暂无“PyQt5使用QTimer实现电子时钟”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
