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检测手机QQ在线状态的脚本代码
Feb 10 Python
Python xlwt设置excel单元格字体及格式
Apr 18 Python
python with提前退出遇到的坑与解决方案
Jan 05 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
基于Python实现的微信好友数据分析
Feb 26 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 Python
python 设置输出图像的像素大小方法
Jul 04 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
sklearn+python:线性回归案例
Feb 24 Python
python梯度下降算法的实现
Feb 24 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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类
2006/11/25 PHP
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
PHP内核探索之变量
2015/12/22 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python简单进程锁代码实例
2015/04/27 Python
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
Python中format()格式输出全解
2019/04/12 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
学生会干部自荐信
2014/02/04 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
挂靠协议书范本
2014/04/22 职场文书
市场推广策划方案
2014/06/02 职场文书
工资收入证明
2014/10/07 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
爱国影片观后感
2015/06/18 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
pandas求平均数和中位数的方法实例
2021/08/04 Python