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 ...
随机推荐
- css 浏览兼容问题及解决办法 (1)
主流浏览器css兼容问题的总结 最近又搞了一波网站的兼容,由于要求ie浏览器还是要兼容到ie8,所以调起来还是各种蛋疼. 现在就post一些做兼容的总结,可能不够全面,但是可以告诉大家如何避过一些坑. ...
- ArtiPub:一款开源的一文多发平台
文章来自我的博客:https://blog.ljyngup.com/archives/705.html/ 看到感觉挺有意思的,有空找个空闲的VPS搭建一下. 转自官方Github仓库 ArtiPub ...
- 用户登录并返回token(springboot)
何为token?[如果想直接看代码可以往下翻] 使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的:1. 客户端使用用户名跟密码请求登录2. 服务端收到请求,去 ...
- debian wget 报ERROR: The certificate of ‘xxx’ is not trusted.
# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz --2019-01-11 15:04:41-- https://w ...
- 兄弟连 企业shell笔试题 16-31
企业实践题16:企业案例:写网络服务独立进程模式下rsync的系统启动脚本 例如:/etc/init.d/rsyncd{start|stop|restart} .要求:1.要使用系统函数库技巧.2.要 ...
- Linux 邮件服务
三个要点 1.smtp协议 2.搭建本地邮件服务器 3.使用外部邮件服务器 实现邮件功能 1.smtp协议 SMTP(Simple Mail Transfer Protocol)即 ...
- 使用ASDM 管理 ciscoASA设备
用vm虚拟机模拟了一台 ASA设备 自适应安全设备软件为 ASA8.25 asdm镜像为asdm-6.49.bin 用客户端连接时,一定要安装java jre,版本我是用的是7,6应该也可以. ...
- 杭电-------2047阿牛的eof牛肉串(C语言写)
/* 主要看最后一个是否为O,若为O,则倒数第二个不能为O,则为a[n-2]*1*2; 若不为O,则最后一个有两个选择则为a[n-1]*2 */ #include<stdio.h> ] = ...
- Java基础环境配置及HelloWorld
一.什么是JDK,JRE JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE.所以安装了JDK, ...
- 在Ubuntu上部署一个基于webrtc的多人视频聊天服务
最近研究webrtc视频直播技术,网上找了些教程最终都不太能顺利跑起来的,可能是文章写的比较老,使用的一些开源组件已经更新了,有些配置已经不太一样了,所以按照以前的步骤会有问题.折腾了一阵终于跑起来了 ...