PyQt5使用QTimer實(shí)現(xiàn)電子時(shí)鐘
本文用 PyQt5 的QTimer類(lèi)的兩種方式實(shí)現(xiàn)電子時(shí)鐘,供大家參考,具體內(nèi)容如下
【效果圖】
【知識(shí)點(diǎn)】
QTimer類(lèi)提供了定時(shí)器信號(hào)/槽和單觸發(fā)定時(shí)器。
它在內(nèi)部使用定時(shí)器事件來(lái)提供更通用的定時(shí)器。
QTimer很容易使用:創(chuàng)建一個(gè)QTimer,使用start()來(lái)開(kāi)始并且把它的timeout()連接到適當(dāng)?shù)牟邸.?dāng)這段時(shí)間過(guò)去了,它將會(huì)發(fā)射timeout()信號(hào)。
【實(shí)現(xiàn)】
1、定時(shí)器信號(hào)/槽方式
class MyTimer(QWidget): def __init__(self, parent = None): # ...... #新建一個(gè)QTimer對(duì)象 self.timer = QTimer() self.timer.setInterval(1000) self.timer.start() # 信號(hào)連接到槽 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) #新建一個(gè)QTimer對(duì)象 self.timer = QTimer() self.timer.setInterval(1000) self.timer.start() # 信號(hào)連接到槽 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、定時(shí)器事件方式
class MyTimer(QWidget): def __init__(self, parent = None): # ...... #新建一個(gè)QTimer對(duì)象 self.timer = QBasicTimer() # QTimer()貌似不行,不知何故? self.timer.start(1000, self) # 覆寫(xiě)計(jì)時(shí)器事件處理函數(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) #新建一個(gè)QTimer對(duì)象 self.timer = QBasicTimer() # QTimer()貌似不行,不知何故? self.timer.start(1000, self) # 覆寫(xiě)計(jì)時(shí)器事件處理函數(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_())
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Qt定時(shí)器類(lèi)QTimer使用詳解與注意事項(xiàng)
- PyQt5中QTimer定時(shí)器的實(shí)例代碼
- Qt基礎(chǔ)開(kāi)發(fā)之Qt多線(xiàn)程類(lèi)QThread與Qt定時(shí)器類(lèi)QTimer的詳細(xì)方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5時(shí)間控件QTimer詳細(xì)使用方法與實(shí)例
- QTimer與QTime實(shí)現(xiàn)電子時(shí)鐘
- python之當(dāng)你發(fā)現(xiàn)QTimer不能用時(shí)的解決方法
- Qt之QTimer使用及技巧小結(jié)
相關(guān)文章
解決Python print 輸出文本顯示 gbk 編碼錯(cuò)誤問(wèn)題
這篇文章主要介紹了解決Python print 輸出文本顯示 gbk 編碼錯(cuò)誤問(wèn)題,本文給出了三種解決方法,需要的朋友可以參考下2018-07-07Python:一行代碼,導(dǎo)入Python所有庫(kù)
在本篇內(nèi)容里小編給大家分享如何用一行代碼,導(dǎo)入Python所有庫(kù),有需要的朋友們可以學(xué)習(xí)下,希望能夠給你帶來(lái)幫助2021-10-10python datetime 和時(shí)間戳互相轉(zhuǎn)換問(wèn)題
time和datetime都是Python中的內(nèi)置模塊(不需要安裝,直接可以使用),都可以對(duì)時(shí)間進(jìn)行獲取,對(duì)時(shí)間格式進(jìn)行轉(zhuǎn)換,如時(shí)間戳和時(shí)間字符串的相互轉(zhuǎn)換,本文先給大家介紹python datetime 和時(shí)間戳互轉(zhuǎn)問(wèn)題,感興趣的朋友一起看看吧2022-11-11python 自動(dòng)化將markdown文件轉(zhuǎn)成html文件的方法
這篇文章主要介紹了python 自動(dòng)化將markdown文件轉(zhuǎn)成html文件的方法的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09python3實(shí)現(xiàn)在二叉樹(shù)中找出和為某一值的所有路徑(推薦)
這篇文章主要介紹了python3實(shí)現(xiàn)在二叉樹(shù)中找出和為某一值的所有路徑,本文通過(guò)一個(gè)實(shí)例demo給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12