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使用win32com在百度空间插入html元素示例
Feb 20 Python
Python类方法__init__和__del__构造、析构过程分析
Mar 06 Python
python操作redis的方法
Jul 07 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
Django rest framework工具包简单用法示例
Jul 20 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
Python中的相关分析correlation analysis的实现
Aug 29 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 Python
Python关于OS文件目录处理的实例分享
May 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
实现树状结构的两种方法
2006/10/09 PHP
基于mysql的论坛(1)
2006/10/09 PHP
文件系统基本操作类
2006/11/23 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python模块的制作方法实例分析
2019/12/21 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
Django返回HTML文件的实现方法
2020/09/17 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
工程总经理工作职责
2013/12/09 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
护理学专业求职信
2014/06/29 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
2014年会计工作总结
2014/11/27 职场文书
关于环保的广播稿
2015/12/17 职场文书
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript