定时器的操作方法有两种:

方法一:利用每个对象包含的timerEvent函数

方法二:利用定时器模块    需要  from PyQt5.QtCore import QTimer

方法一:利用每个对象包含的timerEvent函数

from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton
from PyQt5.QtCore import *
import sys class myobject(QObject):
def timerEvent(self, evt): #重写对象的定时器函数
print(evt,'1')
class win(QWidget): #创建一个类,为了集成控件
def __init__(self):
super(win, self).__init__()
self.setWindowTitle('定时器的使用')
self.resize(200,200)
self.setup_ui() def setup_ui(self):
#label = QLabel('标签控件', self)
button = QPushButton('按钮', self)
#label.move(10, 10)
button.move(70, 150)
button.pressed.connect(self.a) self.obj=myobject(self)
self.id=self.obj.startTimer(1000) #启动对象定时器函数
#可以创建多个,每个返回的id不同
#每个一定的时间,就会自动执行对象中的timerEvent函数
#参数1 间隔时间,单位毫秒
def a(self):
print('按钮被点击了')
self.obj.killTimer(self.id) #释放对象的定时器函数 if __name__=='__main__':
app=QApplication(sys.argv) #创建应用
window=win()
window.show()
sys.exit(app.exec_())

例子:在标签控件中显示从10到0的倒计时,显示0时停止


from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton
from PyQt5.QtCore import *
import sys class Label(QLabel):
def __init__(self,par):
super().__init__(par)
self.setText('10')
self.d=par def timerEvent(self, evt) :
a=int(self.text())-1
if a == 0:
self.killTimer(self.d.id)
self.setText(str(a)) class win(QWidget): #创建一个类,为了集成控件
def __init__(self):
super(win, self).__init__()
self.setWindowTitle('定时器的使用')
self.resize(200,200)
self.setup_ui() def setup_ui(self):
label = Label(self)
label.move(70, 20)
self.id=label.startTimer(1000) if __name__=='__main__':
app=QApplication(sys.argv) #创建应用
window=win()
window.show()
sys.exit(app.exec_())
 

说明:label = Label(self)    在建立对象时,把self参数传给par

方法二:利用定时器模块

需要  from PyQt5.QtCore import QTimer

from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton
#from PyQt5.QtCore import *
from PyQt5.QtCore import QTimer
import sys class win(QWidget): #创建一个类,为了集成控件
def __init__(self):
super(win, self).__init__()
self.setWindowTitle('定时器的使用')
self.resize(200,200)
self.setup_ui()
self.num=0 def setup_ui(self):
self.timer = QTimer(self) # 初始化一个定时器
self.timer.timeout.connect(self.operate) # 每次计时到时间时发出信号
self.timer.start(1000) # 设置计时间隔并启动;单位毫秒
def operate(self):
self.num=self.num+1
print(self.num) if __name__=='__main__':
app=QApplication(sys.argv) #创建应用
window=win()
window.show()
sys.exit(app.exec_())

天子骄龙

pyqt5-定时器的更多相关文章

  1. PyQt5信号、定时器及多线程

    信号 信号是用于界面自动变化的一个工具,原理是信号绑定了一个函数,当信号被触发时函数即被调用 举个例子 from PyQt5 import QtWidgets,QtCore from untitled ...

  2. PyQt5系列教程(八)定时器QTimer的使用

    软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 前言 如果需要在程序中周期性地进行某项操作,比如检测某种设备的状态,就会用到定时器.本文就来看看PyQT5中 ...

  3. PyQt5中Web操作与多线程定时器

    1.装载外部网页页面'''用web浏览器控件QWebEngineView控件显示网页PyQt5和Web的交互技术 同时使用python和Web开发程序,混合开发 Python+JavaScript+H ...

  4. PyQt5多线程和定时器

    多线程 一般情况单线程就可以很好的完成任务,但是对于GUI程序来说,单线程就不能完全满足需求.如果有耗时流程,在单线程的情况下,界面操作就会卡死,直到耗时操作完成,才会响应界面操作.为了解决这个问题, ...

  5. pyqt5 多线程+定时器+读取本地图片

    前言 一个程序界面有多个button 按钮时,单击一个按钮,若此按钮对应的信号正在执行,且还未执行完毕: 此时再次单击另外一个按钮,就会出现假死状态. 这个时候我们就需要使用 多线程去解决 多线程+定 ...

  6. PyQt5 教程地址

    https://maicss.gitbooks.io/pyqt5/content/介绍.htmlPyQt5{ QtCore { BasicTimer#定时器 } QtWidgets#窗口工具 { QA ...

  7. pyqt5的使用目录

    pyqt5的安装 我的第一个例子 标签控件QLabel的使用   按钮QPushButton 信号与槽 pyqt5模块介绍 pycharm活动模板  QObject 定时器  QWidget类-坐标系 ...

  8. 定时器QTimer

    import sys from PyQt5.QtCore import QTimer, Qt from PyQt5.QtWidgets import QApplication, QWidget, QP ...

  9. Pyqt5的事例讲解

    1.第一个gui程序 import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QMainWind ...

  10. Python实现网页截图(PyQT5)

    方案说明 功能要求:实现网页加载后将页面截取成长图片涉及模块:PyQT5 PIL逻辑说明: 1:完成窗口设置,利用PyQT5 QWebEngineView加载网页地址,待网页加载完成后,调用check ...

随机推荐

  1. react案例->新闻移动客户端--(react+redux+es6+webpack+es6的spa应用)

    今天分享一个react应用,应在第一篇作品中说要做一个react+redux+xxx的应用.已经做完一部分,拿出来分享.github地址为:点我就可以咯~ 这里实现了一个新闻移动站的spa.本来想写p ...

  2. C# winfrom容器布局与工具栏&&右键菜单栏&&隐藏显示小图标的的简单事件

    前两天的时候学习了winfrom,简单地说就是各种布局,然后给按钮,textbox等各种控件添加各种事件的操作,经过前天一晚上,昨天一天的练习操作的还算熟练,但是对构造函数传值还是不是很了解,由于各种 ...

  3. tyvj/joyoi 1340 送礼物

    论搜索顺序的优越性. 从小到大搜索,T到怀疑人生. 从大到小搜索,轻松AC. 双向搜索. 是这样的.我们首先排序一下,然后翻转.(当然也可以写cmp) 然后我们搜前半部分,把结果记录在某一数组中. 然 ...

  4. 洛谷P2824 排序

    解:splay + 线段树合并,分裂. 首先有个乱搞做法是外层拿splay维护,有序区间缩成splay上一个节点.内层再开个数据结构支持合并分裂有序集合. 内层我一开始想的是splay,然后就没有复杂 ...

  5. 苹果电脑自带python安装tensorflow一直有问题

    对于有些程序是不支持python3而支持python2的,为了在苹果电脑安装tensorflow, 首先sudo su到管理员权限 export TF_BINARY_URL=https://stora ...

  6. log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息

    log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息 日志信息可以以文件形式显示,也可以在控制台输出,在 log4j.properties 文件设置. 控制台有很多 ...

  7. php5.4后htmlspecialchars输出为空的问题

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,ht ...

  8. 22. Generate Parentheses(ML)

    22. Generate Parentheses . Generate Parentheses Given n pairs of parentheses, write a function to ge ...

  9. 线程相关函数(1)-pthread_create(), pthread_join(), pthread_exit(), pthread_cancel() 创建取消线程

    一. pthread_create() #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_a ...

  10. docker 基本功能

    Docker开启Remote API docker默认是没有开启Remote API的,需要我们手动开启. 1.编辑/lib/systemd/system/docker.service文件: 注释掉图 ...