PyQt5使用QTimer實現(xiàn)電子時鐘
更新時間:2019年07月29日 11:21:42 作者:羅兵
這篇文章主要為大家詳細介紹了PyQt5使用QTimer實現(xiàn)電子時鐘,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文用 PyQt5 的QTimer類的兩種方式實現(xiàn)電子時鐘,供大家參考,具體內容如下
【效果圖】

【知識點】
QTimer類提供了定時器信號/槽和單觸發(fā)定時器。
它在內部使用定時器事件來提供更通用的定時器。
QTimer很容易使用:創(chuàng)建一個QTimer,使用start()來開始并且把它的timeout()連接到適當?shù)牟?。當這段時間過去了,它將會發(fā)射timeout()信號。
【實現(xiàn)】
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)
# 覆寫計時器事件處理函數(shù)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)
# 覆寫計時器事件處理函數(shù)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_())
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決Python print 輸出文本顯示 gbk 編碼錯誤問題
這篇文章主要介紹了解決Python print 輸出文本顯示 gbk 編碼錯誤問題,本文給出了三種解決方法,需要的朋友可以參考下2018-07-07
python 自動化將markdown文件轉成html文件的方法
這篇文章主要介紹了python 自動化將markdown文件轉成html文件的方法的相關資料,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2016-09-09
python3實現(xiàn)在二叉樹中找出和為某一值的所有路徑(推薦)
這篇文章主要介紹了python3實現(xiàn)在二叉樹中找出和為某一值的所有路徑,本文通過一個實例demo給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12

