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实现PS图像抽象画风效果的方法
Jan 23 Python
Python subprocess模块详细解读
Jan 29 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
详解python中eval函数的作用
Oct 22 Python
解决python replace函数替换无效问题
Jan 18 Python
python读取mysql数据绘制条形图
Mar 25 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
python中time、datetime模块的使用
Dec 14 Python
关于Python错误重试方法总结
Jan 03 Python
Python装饰器的练习题
Nov 23 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
聊天室php&mysql(六)
2006/10/09 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PDO::query讲解
2019/01/29 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
python版学生管理系统
2018/01/10 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
如何在python中写hive脚本
2019/11/08 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
秋季校运会广播稿100字
2014/09/18 职场文书
教师党员自我评价2015
2015/03/04 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技