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

 

目录
相关文章
|
2月前
|
编解码 算法 Unix
【Qt 应用开发 】QT 三种定时器的介绍 以及 QTimer startTimer/Timerevent QBasicTimer 之间的区别
【Qt 应用开发 】QT 三种定时器的介绍 以及 QTimer startTimer/Timerevent QBasicTimer 之间的区别
106 0
|
3月前
|
Python
python 用tkinter实现电子时钟
python 用tkinter实现电子时钟
34 1
|
7月前
|
数据格式
嵌入式 QT 定时器与计时器
嵌入式 QT 定时器与计时器
|
9月前
|
传感器
STM32+ESP8266+QT客户端上位机显示DHT11温湿度与点灯
STM32+ESP8266+QT客户端上位机显示DHT11温湿度与点灯
|
11月前
QT上位机串口+STM32单片机项目(二)
QT上位机串口+STM32单片机项目
168 0
|
11月前
QT上位机串口+STM32单片机项目(一)
QT上位机串口+STM32单片机项目
494 0
|
芯片
STM32CubeMX按键模块化 点灯
我们继续讲解 stm32 f103,这篇文章将详细 为大家讲解 如何 使用 按键点亮 RGB 灯。
124 0
STM32学习笔记(7) 超声波HSR04模块详解
有信号返回时,通过IO输出一高电平、高电平持续时间就是超声波从发射到返回的时间
111 0
|
存储 监控
西门子S7-1200编程实例,脉冲定时器指令如何使用?
在西门子S7-1200中有四种类型的定时器:接通延迟定时器TON、保持型接通延迟定时器TONR、关断延迟定时器TOF、脉冲定时器TP。
西门子S7-1200编程实例,脉冲定时器指令如何使用?
|
传感器 开发框架 算法
基于STM32的心率计(三)Qt上位机的实现
基于STM32的心率计(三)Qt上位机的实现
382 0
基于STM32的心率计(三)Qt上位机的实现