码迷,mamicode.com
首页 > 其他好文 > 详细

PyQt5用QTimer编写电子时钟

时间:2015-02-08 23:03:40      阅读:559      评论:0      收藏:0      [点我收藏+]

标签:

 

【说明】

本文用 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

 

PyQt5用QTimer编写电子时钟

标签:

原文地址:http://www.cnblogs.com/hhh5460/p/4280612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!