pyqt5-进度条控制
1.基于自定义类的方式
继承自QProgressBar类,然后重写timerEvent方法,当该组件设置定时器的时候,会自己处理定时的处理方法,完成相应的功能
from PyQt5.Qt import * class MyQProgressBar(QProgressBar):
def timerEvent(self, evt):
value = self.value()
if value <= self.maximum()-1:
self.setValue(value+1)
else:
self.killTimer(evt.timerId()) class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("进度条")
self.resize(500,500)
self.setup_ui() def setup_ui(self):
self.qpb = MyQProgressBar(self)
self.qpb.resize(300,30)
self.qpb.setValue(20) # self.qpb.startTimer(1000,Qt.VeryCoarseTimer) self.btn = QPushButton("开始",self)
self.btn.move(0,50) self.btn.clicked.connect(self.change_progressbar) def change_progressbar(self):
if self.btn.text() == "开始":
self.btn.setText("结束")
self.qpb_time_id = self.qpb.startTimer(1000,Qt.VeryCoarseTimer)
else:
self.btn.setText("开始")
self.qpb.killTimer(self.qpb_time_id) if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())
2.基于QTimer类来实现
from PyQt5.Qt import * class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("进度条")
self.resize(500,500)
self.setup_ui() def setup_ui(self):
self.qpb = QProgressBar(self)
self.qpb.resize(300,30)
self.qpb.setValue(20) # self.qpb.startTimer(1000,Qt.VeryCoarseTimer) self.btn = QPushButton("开始",self)
self.btn.move(0,50)
self.timer = QTimer(self.qpb) #Qtimer类当定时间隔到了之后会发射一个timerout信号,这样就可以变更进度条的值
self.timer.timeout.connect(self.change_value) #这里用按钮来启动一个定时器(光创建一个定时器并不会起作用),同时这个按钮也可以选择停止一个定时器
self.btn.clicked.connect(self.change_progressbar) def change_value(self):
if self.qpb.value() < self.qpb.maximum():
self.qpb.setValue(self.qpb.value()+1)
else:
self.timer.stop() def change_progressbar(self):
if self.btn.text() == "开始":
self.btn.setText("结束")
self.timer.start(1000)
else:
self.btn.setText("开始")
self.timer.stop() if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())
pyqt5-进度条控制的更多相关文章
- android97 播放音频 有进度条控制
package com.itheima.musicplayer; import android.os.Bundle; import android.os.Handler; import android ...
- Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制
Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...
- 批量处理任务进度条控制—基于BackgroundWorker
今天要做一个批量处理图层数据的功能,希望在处理任务过程中,各个任务都能在进度条中显示自己的当前进度,决定继续使用强大易用的BackgroundWorker组件.通过在RunWorkerComplete ...
- Android——进度条控制图片透明度
xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...
- MFC 进度条控件
1.进度条 主要用来进行数据读写.文件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等,伴随工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充. 2.进度条控制在MF ...
- audio进度条
如上图所示:为效果图 代码如下: <!doctype html><html> <head> <meta name="author" con ...
- C#调用耗时函数时显示进度条浅探
最近在做一个VSS日志分析工具,使用C#进行开发,在完成了所有功能后,发现,从服务器下载VSS日志非常耗时,因为此,导致工具使用体验不好,所以,准备增加一个进度条.鉴于C#不经常使用,一下子搞个进度条 ...
- 阿里播放器踩坑记录 进度条重构 video loadByUrl失效解决方案
如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 文档地址:https://player.alicdn.com/aliplayer/index. ...
- python中pyqt5的进度条--python实战(十)
python太博大精深了,使用场景非常多.最近笔者一直使用PyQt5编一些小程序,顺便就把一些常用的东西列出来,做个记录和积累吧.进度条是非常常用的东西,今天用的时候,顺便温习了一下,这个东西自己感觉 ...
- 怎样控制界面控件之进度条(ProgressBar)功能
一.基础知识: 1.ProgressBar在界面文件XML中的布局: [html] <progressBar android:id="@+id/progressbar_updown&q ...
随机推荐
- Java中类的关系
在java里类的关系大致分为三种, 1.继承(a is b):继承extends,实现implement 2.包含(a has b):组合>聚合>关联.关系亲密度越来越小,一个类在另一个类 ...
- 【Bullet引擎】Bullet物理引擎简单说明
说明 Bullet是一款开源的物理模拟计算引擎,包括刚体.柔体.弹性体等,是世界三大物理模拟引擎之一(包括Havok和PhysX),被广泛应用于游戏开发(GTA5等)和电影(2012等)制作中. Bu ...
- Docker的基本使用与简介
1 Docker简介 1.1 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来 ...
- kali重置root密码
像这样,kali系统的root密码忘记了,只需一分钟时间,快速重置root密码 第一步: 电脑开机后kali系统会进入引导界面,这是我们只需 “e” 进入启动前编辑命令(若系统没有出现这个页面,大家在 ...
- 《自拍教程16》cmd的常用技巧
cmd.exe是Windows 自带的命令行操作交互界面软件. 虽然功能有限,但是毕竟是默认的命令行操作交互界面软件. 肯定所有的电脑都是自带的. 当然现在已经有很多改良版的,交互体验更好的cmd类似 ...
- 【转载】Java的Vector,ArrayList,LinkedList
首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList.Vector和LinkedList.List用于存放多个元素,能够维护元素的次序,并且允许元素的重复.3个具体 ...
- Python爬虫beautifulsoup4常用的解析方法总结(新手必看)
今天小编就为大家分享一篇关于Python爬虫beautifulsoup4常用的解析方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧摘要 如何用beau ...
- alpine安装telnet等工具
alpine确实是很精简,但是对于熟悉了centos和ununtu的个人来说,实在是不习惯. 因此,记录关于alpine的一些包安装,以及操作细节(逐渐补充). 1. telnet >>& ...
- 正规式与正规集,DFA与NFA
词法分析器的设计 词法分析器的功能:输入源程序.输出单词符号 词法分析器的设计:给出程序设计语言的单词规范--单词表, 对照单词表设计识别该语言所有单词的状态转换图, 根据状态转换图编写词法分析程序 ...
- k8s强制删除pod
有时候pod一直在Terminating kubectl delete pod xxx --force --grace-period=