PyQt5使⽤QTimer实现电⼦时钟
本⽂⽤ 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.TimerOut)
# 定义槽
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.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()
timeout on t2 timer
self.timer.setInterval(1000)
self.timer.start()
# 信号连接到槽
self.TimerOut)
# 定义槽
def onTimerOut(self):
self.lcd.display(time.strftime("%X",time.localtime()))
app = QApplication(sys.argv)
t = MyTimer()
t.show()
<_())
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.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()
<_())
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。