PyQt5使用QTimer实现电子时钟


Posted in Python onJuly 29, 2019

本文用 PyQt5 的QTimer类的两种方式实现电子时钟,供大家参考,具体内容如下

【效果图】

PyQt5使用QTimer实现电子时钟

【知识点】

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

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

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

【实现】

1、定时器信号/槽方式

class MyTimer(QWidget):
  def __init__(self, parent = None):  
    # ......
    
    #新建一个QTimer对象    
    self.timer = QTimer()   
    self.timer.setInterval(1000)    
    self.timer.start()
     
    # 信号连接到槽    
    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)
    
    #新建一个QTimer对象    
    self.timer = QTimer()   
    self.timer.setInterval(1000)    
    self.timer.start()
     
    # 信号连接到槽    
    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、定时器事件方式

class MyTimer(QWidget):
  def __init__(self, parent = None):
    # ......
    
    #新建一个QTimer对象    
    self.timer = QBasicTimer() # QTimer()貌似不行,不知何故?
    self.timer.start(1000, self) 
  
  # 覆写计时器事件处理函数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)
    
    #新建一个QTimer对象    
    self.timer = QBasicTimer() # QTimer()貌似不行,不知何故?
    self.timer.start(1000, self) 
  
  # 覆写计时器事件处理函数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_())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python写的ARP攻击代码实例
Jun 04 Python
python数组复制拷贝的实现方法
Jun 09 Python
深入理解Python变量与常量
Jun 02 Python
Python 数据结构之旋转链表
Feb 25 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
Django框架实现在线考试系统的示例代码
Nov 30 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 #Python
Python将string转换到float的实例方法
Jul 29 #Python
django foreignkey(外键)的实现
Jul 29 #Python
python实现翻转棋游戏(othello)
Jul 29 #Python
Django如何将URL映射到视图
Jul 29 #Python
python3获取当前目录的实现方法
Jul 29 #Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 #Python
You might like
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
总结JavaScript中布尔操作符||与&&的使用技巧
2015/11/17 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
python中的函数用法入门教程
2014/09/02 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
python:print格式化输出到文件的实例
2018/05/14 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
教师年终个人自我评价
2013/10/04 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
小学生倡议书范文
2014/05/13 职场文书
保安公司服务承诺书
2014/05/28 职场文书
教师工作能力自我评价
2015/03/04 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书