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两个整数相除得到浮点数值的方法
Mar 18 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
django+echart绘制曲线图的方法示例
Nov 26 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
python实现五子棋人机对战游戏
Mar 25 Python
简单了解python高阶函数map/reduce
Jun 28 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 Python
基于python实现简单网页服务器代码实例
Sep 14 Python
Python的collections模块真的很好用
Mar 01 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的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
laravel请求参数校验方法
2019/10/10 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
详解vue高级特性
2020/06/09 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
Python OpenCV实现图片上输出中文
2018/01/22 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
python实现顺序表的简单代码
2018/09/28 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
如何利用Python写个坦克大战
2020/11/18 Python
python爬虫如何解决图片验证码
2021/02/14 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
论文评审意见
2015/06/05 职场文书
宣传委员竞选稿
2015/11/19 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
InterProcessMutex实现zookeeper分布式锁原理
2022/03/21 Java/Android