PyQt5用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

 

时间: 2024-09-30 09:47:29

PyQt5用QTimer编写电子时钟的相关文章

用WPS 2005做个会动的电子时钟

运行WPS Office2005强大的自定义动画功能,可以制作出能于Flash相媲美的动画效果.下面笔者就以电子时钟的制作为例来向大家讲解. 一.新建项目并设计背景 1.运行WPS演示,创建一张空白幻灯片. 2.进行如下设置:单击"视图"菜单,在弹出的下拉菜单中单击"网格线"命令,弹出"网格线"对话框,勾选"屏幕上显示网格"选项,单击"确定"按钮保存设置. 3.单击"绘图"工具栏中的&q

WPS演示中制作电子时钟的方法

  WPS演示中制作电子时钟的方法 1.打开WPS演示,新建一个空白幻灯片,然后点击菜单栏--视图--网格和参考线. 2.勾选屏幕上显示绘图参考线,确定. 3.插入艺术字,选择一种类型,输入电子时钟4个字.然后添加一个文本框,输入内容,例如作者提示:运行幻灯片后单击鼠标即可使时钟运行,再次单击鼠标退出运行. 4.依次单击"绘图"工具栏中的"自选图形/动作按钮/动作按钮:自定义"命令,绘制一个正方形小窗口.在弹出的菜单中,勾选超链接到,下方选择结束放映. 5.双击该方

flash 电子时钟

flash 电子时钟,下面是时钟代码,图片各位朋友做0-9得就OK了. onEnterFrame = function () { var my_dateate = new Date(); //秒 var miao:Number = my_date.getSeconds(); if (miao<10) {   _mc2.gotoAndStop(1);   _mc1.gotoAndStop(miao+1); } else {   _mc2.gotoAndStop(Math.floor(miao/10

lcd设计电子时钟protues ,keil编程

问题描述 lcd设计电子时钟protues ,keil编程 以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间:使用字符型LCD显示器显示当前时间.显示格式为"时时:分分:秒秒".用4个功能键操作来设置当前时间.功能键K1-K4功能如下. ?K1-进入设置现在的时间. ?K2-设置小时. ?K3-设置分钟. ?K4-确认完成设置. ?程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示"00:00:00",然后开始计时.c语言编程 解决方案

quartus 时钟 vhdl-求quartus II 9.0的电子时钟

问题描述 求quartus II 9.0的电子时钟 具有调时,整点报时等功能,最好代码有注释,经过运行可使用,管脚分配最好有截图,芯片cyclone II

JavaScript电子时钟倒计时_javascript技巧

本文实例讲解了JavaScript电子时钟倒计时的详细代码,分享给大家供大家参考,具体内容如下JavaScript时间类1.获取时分秒:         getHours()          getMinutes();          getSeconds();2.获取年月日:          getFullYear();          getMonth() + 1;//获取的月份需要+1:          getDate(); //日期          getDay(); //获

JavaScript电子时钟倒计时第二款_javascript技巧

本文实例讲解了JavaScript电子时钟倒计时的详细代码,分享给大家供大家参考,具体内容如下JavaScript时间类1.获取时分秒:getHours() getMinutes(); getSeconds();2.获取年月日: getFullYear(); getMonth() + 1;//获取的月份需要+1: getDate(); //日期 getDay(); //获取的是星期,0-->星期天 效果图: 具体代码: <!doctype html> <html> <m

线程-Android编写的时钟,怎么用两个按钮控制它的开始和暂停?

问题描述 Android编写的时钟,怎么用两个按钮控制它的开始和暂停? 这是线程 ,该怎么弄? @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); start(); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); stop(); } public void start(){ if (

iphone学习之旅之实例:LED电子时钟

在我们的iphone上如果有一个LED显示的电子时钟会有一种特别的感觉吧,呵呵. 首先,我们打开Xcode,点击File→New Project,选择iPhone OS→Application,在这里我们选择View-based Application模版(我们的整个应用程序只有一个视图),点选Choose之后保存为LEDClick工程(默认整个工程会保存在/Users/当前登陆用户名/Documents下面).之后点击OK就创建了了整个目录. 我们来看Groups&Files窗体,它分类显示了