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 ...
随机推荐
- [terminal]终端仿真程序
char * szCommAry[COMM_NUM]={ //屏幕属性命令,23 "\x1b[12h",//禁止本端回显,键盘数据仅送给主机 "\x1b[12l" ...
- Codeforces 1064D Labyrinth(双端队列BFS)
题意: 给一个图,"*"不可以走,给你一个起点,限制向左走L次,向右走R次,上下不限制,问你最多可以走到多少个格子 思路: BFS,每次将上下走的策略加入队首,左右加入队尾,(相当 ...
- 三、Mongodb Java中的使用
添加maven依赖 <!--mongodb 驱动--> <dependency> <groupId>org.mongodb</groupId> < ...
- 配置 Docker 加速器
Linux curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io ...
- JumpServer部署与管理
一.JumpServer 堡垒机概述 JumpServer由Python/Django进行开发.使用GNU GPL v2.0开源协议.也是全球首款完全开源的堡垒机.同时配备了业界领先的Web Term ...
- Linux Shell 计算脚本执行过程用了多长时间
#!/bin/bash starttime=`date +'%Y-%m-%d %H:%M:%S'` #执行程序 endtime=`date +'%Y-%m-%d %H:%M:%S'`start_sec ...
- 安利自己写的easy-clipboard库
概述 clipboard.js 是一个非常好用的剪切板插件,但是随着前端框架的演变,用户与网页交互的方式越来越多,不仅限于点击事件了,并且在很多情况下,我们可能不需要它强制性自带的点击事件,所以我打算 ...
- [jQuery]jQuery和DOM对象(三)
iQuery和DOM对象 用原生js获取来的对象就是DOM对象 // 1. DOM对象 var myDiv = document.get.querySelector('div'); // myDiv ...
- Java基于过滤器进行重定向不成功问题的兩種解決辦法,以及基於JSF的ajax重定向解決辦法
我创建了一个过滤器,只要用户没有登陆就不能连接到主界面,但是在doFilter方法中用重定向在前端跳转页面不成功. 原因:由于我的登陆界面是基于ajax请求的,而ajax默认不支持重定向,他只能局部更 ...
- CSS中的vertical-align属性
1,vertical-align属性的作用? 设置元素垂直对齐的方式: 2,该属性使用过程的注意点: 与text-align属性不同,text-align属性是设置给需要对齐元素的父元素的, 而ver ...