PyQt5用QTimer编写电子时钟

简介: 【说明】 本文用 PyQt5 的QTimer类的两种方式实现电子时钟   【效果图】   【知识点】     QTimer类提供了定时器信号/槽和单触发定时器。     它在内部使用定时器事件来提供更通用的定时器。

 

【说明】

本文用 PyQt5 的QTimer类的两种方式实现电子时钟

 

【效果图】

 

【知识点】

    QTimer类提供了定时器信号/槽和单触发定时器。

    它在内部使用定时器事件来提供更通用的定时器。

    QTimer很容易使用:创建一个QTimer,使用start()来开始并且把它的timeout()连接到适当的槽。当这段时间过去了,它将会发射timeout()信号。

 

【实现】

1、定时器信号/槽方式

 1 class MyTimer(QWidget):
 2     def __init__(self, parent = None):    
 3         # ......
 4         
 5         #新建一个QTimer对象        
 6         self.timer = QTimer()      
 7         self.timer.setInterval(1000)       
 8         self.timer.start()
 9          
10         # 信号连接到槽       
11         self.timer.timeout.connect(self.onTimerOut)
12 
13     # 定义槽
14     def onTimerOut(self):        
15         self.lcd.display(time.strftime("%X",time.localtime()))

 

完整代码:

 1 import sys
 2 import time
 3 from PyQt5.QtCore import *
 4 from PyQt5.QtGui import *
 5 from PyQt5.QtWidgets import *
 6 
 7 class MyTimer(QWidget):
 8     def __init__(self, parent = None):
 9         super(MyTimer, self).__init__(parent)      
10         self.resize(200, 100)      
11         self.setWindowTitle("QTimerDemo")
12         
13         self.lcd = QLCDNumber()      
14         self.lcd.setDigitCount(10)      
15         self.lcd.setMode(QLCDNumber.Dec)
16         self.lcd.setSegmentStyle(QLCDNumber.Flat)
17         self.lcd.display(time.strftime("%X",time.localtime()))
18 
19         layout = QVBoxLayout()
20         layout.addWidget(self.lcd)       
21         self.setLayout(layout)
22         
23         #新建一个QTimer对象        
24         self.timer = QTimer()      
25         self.timer.setInterval(1000)       
26         self.timer.start()
27          
28         # 信号连接到槽       
29         self.timer.timeout.connect(self.onTimerOut)
30 
31     # 定义槽
32     def onTimerOut(self):        
33         self.lcd.display(time.strftime("%X",time.localtime()))
34 
35 
36         
37 app = QApplication(sys.argv)
38 t = MyTimer()
39 t.show()
40 sys.exit(app.exec_())
View Code

 

2、定时器事件方式

 1 class MyTimer(QWidget):
 2     def __init__(self, parent = None):
 3         # ......
 4         
 5         #新建一个QTimer对象        
 6         self.timer = QBasicTimer() # QTimer()貌似不行,不知何故?
 7         self.timer.start(1000, self) 
 8     
 9     # 覆写计时器事件处理函数timerEvent()
10     def timerEvent(self, event):
11         self.lcd.display(time.strftime("%X",time.localtime()))

 

完整代码:

 1 import sys
 2 import time
 3 from PyQt5.QtCore import *
 4 from PyQt5.QtGui import *
 5 from PyQt5.QtWidgets import *
 6 
 7 class MyTimer(QWidget):
 8     def __init__(self, parent = None):
 9         super(MyTimer, self).__init__(parent)      
10         self.resize(200, 100)      
11         self.setWindowTitle("QTimerDemo")
12         
13         self.lcd = QLCDNumber()      
14         self.lcd.setDigitCount(10)      
15         self.lcd.setMode(QLCDNumber.Dec)
16         self.lcd.setSegmentStyle(QLCDNumber.Flat)
17         self.lcd.display(time.strftime("%X",time.localtime()))
18 
19         layout = QVBoxLayout()
20         layout.addWidget(self.lcd)       
21         self.setLayout(layout)
22         
23         #新建一个QTimer对象        
24         self.timer = QBasicTimer() # QTimer()貌似不行,不知何故?
25         self.timer.start(1000, self) 
26     
27     # 覆写计时器事件处理函数timerEvent()
28     def timerEvent(self, event):
29         if event.timerId() == self.timer.timerId():
30             self.lcd.display(time.strftime("%X",time.localtime()))
31         else:
32             super(WigglyWidget, self).timerEvent(event)
33 
34         
35 app = QApplication(sys.argv)
36 t = MyTimer()
37 t.show()
38 sys.exit(app.exec_())
View Code

 

目录
相关文章
|
6月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
471 2
|
4月前
|
Python
python tkinter 实现简易秒表计时器
python tkinter 实现简易秒表计时器
127 1
|
6月前
Qt定时器
Qt定时器
|
6月前
第3个Qt项目:秒表
第3个Qt项目:秒表
|
7月前
|
Python
python 用tkinter实现电子时钟
python 用tkinter实现电子时钟
157 1
|
数据格式
嵌入式 QT 定时器与计时器
嵌入式 QT 定时器与计时器
|
存储 监控
西门子S7-1200编程实例,脉冲定时器指令如何使用?
在西门子S7-1200中有四种类型的定时器:接通延迟定时器TON、保持型接通延迟定时器TONR、关断延迟定时器TOF、脉冲定时器TP。
西门子S7-1200编程实例,脉冲定时器指令如何使用?
|
传感器 存储 编解码
基于单片机定时闹钟设计
基于单片机定时闹钟设计
205 0
基于单片机定时闹钟设计
|
缓存 C++
Qt | 串口通信 QSerialPort
使用QSerialPort实现串口通信功能。
653 0
使用qt实现简易示波器功能
使用qt实现简易示波器功能
1010 1