python中pyqt5的进度条--python实战(十)

  python太博大精深了,使用场景非常多。最近笔者一直使用PyQt5编一些小程序,顺便就把一些常用的东西列出来,做个记录和积累吧。
进度条是非常常用的东西,今天用的时候,顺便温习了一下,这个东西自己感觉没啥可讲的,最好的办法就是例子来说明:下面给一个简单的例子。
  基本进度条使用:

进度条的函数如下:

  self.pbar = QProgressBar(self) //进度条的定义
  self.pbar.setGeometry(30, 60, 100, 30) //进度条的大小和位置,前两个是位置,后两个是大小

进度条默认一般是长度为100,步长度一般使用一个变量来控制,这个变量要初始化为零,需要清空的时候要记得清零:

self.step = 0

当步长设置的的时候,一定要设置到进度条的属性里面,不然的话意义不大,如下所示:

  self.step = self.step+1
  self.pbar.setValue(self.step)

 下面是一个基本例子:直接运行即可

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3
 4 """
 5 PyQt5 教程
 6
 7 这个例子显示了一个进度条控件。
 8
 9 auther: 虚生
10
11 """
12
13 import sys
14 from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton
15 from PyQt5.QtCore import QBasicTimer
16
17 class Example(QWidget):
18
19     def __init__(self):
20         super().__init__()
21
22         self.initUI()
23
24     def initUI(self):
25
26         self.pbar = QProgressBar(self)
27         self.pbar.setGeometry(30, 40, 200, 25)
28
29         self.btn = QPushButton(‘开始‘, self)
30         self.btn.move(40, 80)
31         self.btn.clicked.connect(self.doAction)
32
33         self.timer = QBasicTimer()
34         self.step = 0
35         self.setGeometry(300, 300, 280, 170)
36         self.setWindowTitle(‘进度条‘)
37         self.show()
38
39     def timerEvent(self, e):
40
41         if self.step >= 100:
42             self.step = 0
43             self.pbar.setValue(self.step)
44             self.timer.stop()
45             self.btn.setText(‘完成‘)
46             return
47         self.step = self.step+1
48         self.pbar.setValue(self.step)
49
50     def doAction(self, value):
51         print("do action")
52         if self.timer.isActive():
53             self.timer.stop()
54             self.btn.setText(‘开始‘)
55         else:
56             self.timer.start(100, self)
57             self.btn.setText(‘停止‘)
58
59 if __name__ == ‘__main__‘:
60      app = QApplication(sys.argv)
61      ex = Example()
62      sys.exit(app.exec_())

  运行结果如下:

 这个是我pyqt5的github集合里面的一个,本人积累的pyqt5的例子都在里面,有需要的请查看:

https://github.com/DyLanCao/pyqt5_example.git

 还有一个问题备忘:

1 默认的最大个数怎么修改:

  self.pbar = QProcessBar(self)

  self.pbar.setMaximum(100)

原文地址:https://www.cnblogs.com/dylancao/p/11587420.html

时间: 2024-11-10 10:56:03

python中pyqt5的进度条--python实战(十)的相关文章

Python:如何显示进度条

进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果. 进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条? 最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果. 可以想到那个转义符了吧,那就是 \r. 转义符\r就可以把光标移动到行首

python实现显示安装进度条

一直很好奇那种安装进度条,或者启动程序时候显示的进度条是怎么实现的,学习了python之后,sys模块中有个方法可以实现,代码如下: 1 2 3 4 5 6 import sys,time for i in range(50):#循环50次 sys.stdout.write('#')#向终端输出# #在这中间就可以做你想要的处理了,处理完之后结束循环即可 sys.stdout.flush()#立即输出,如果不加这个的话,它会等缓冲区满了之后才显示 time.sleep(1)#sleep一秒再输出

python实现验证码与进度条

验证码 # python 实现验证码 import random n = 5 lis = list() count = 0 while count<n: count+=1 lis.append(str(random.randint(0,9))) lis.append(chr(random.randint(65,90))) lis.append(chr(random.randint(97,122))) lis2 = random.sample(lis,n) print(lis2) lis1 = '

python手写实现进度条

哈哈哈,我们平时都经常见到python的进度条,安装pip包的时候,更新的时候,调用第三方库的时候,,,但是很少有人试过自己实现,今天来了兴趣就自己写一套哈哈哈 进度条的输出是在原地刷新的,所以用到输出的‘\r’和time库的sleep(),‘\r’即“换行,光标在上一行”.这里提供两种方法: ————使用print() for i in range(0,101,2):    print('\r----->>',i, '<<-----',end = "", fl

Python基本数据类型-文本进度条

import time scale=50 print("执行开始".center(scale//2,"-")) start=time.perf_counter() for i in range(scale+1): a='*'*i b='.'*(scale-i) c=(i/scale)*100 dur=time.perf_counter()-start print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a

Python实现屏幕输出进度条的方法

一般输出到屏幕的时候是一组数据一次性全部显示出来得.这是因为电脑为了提高效率,数据会先暂时放入缓存,等缓存满了或者操作结束了,再一次性将数据进行处理. 类似进度条的情况需要字符一次一个的蹦出来,这时候就需要使用flush()来强制执行这个处理缓存内数据的操作. 上课讲文件flush()的时候,最后提到了这个.就先抄下来了. import sys,time for i in range(20):     sys.stdout.write("#")  # 调用sys在屏幕输出     sy

Unity3D中灵活绘制进度条

有时我们需要在Unity3D中绘制进度条,如:           或        如果使用4.6版本以下的unity绘制环形的进度条可能需要费点劲.我搜到的大多数方法都是用NGUI插件,但有时只是为了简单的画一个环形UI,使用NGUI反而还增加了学习成本.有一个利用CutOut材质的方法能够利用alpha值,灵活的控制进度条中需要显示的部分,以环形进度条为例,方法如下: 1.在PS中制作一张如下所示的图,RGB为进度条想要的颜色,alpha值从5-250环形渐变(如果从0-255,在进度为0

用Raphael在网页中画圆环进度条

原文 :http://boytnt.blog.51cto.com/966121/1074215 条状的进度条我们见得太多了,实现起来比较简单,它总是长方形的,在方形的区域里摆 放就不太好看了.随着css3的出现,圆环状的进度条开始用得越来越多,不过由于IE6/7/8不支持css3,我们只能换其它方法来实现.本文就采用 Raphael来画一个,这个组件对svg和vml进行了一个统一的封装,根据浏览器使用不同的技术实现绘制,因此IE也能用. 先上效果图: 效果还不错吧?代码其实也不复杂,抛砖引玉一下

在C++中如何做出进度条

[来信] 尊敬的贺老师,我看了您的C++程序设计课觉得很有启发,对于第九周项目设计我有一个想法.怎么用程序实现安装进度百分比与进度条之间结合小程序.如: 不知道应该怎样实现,还请老师点播一二. [回信] 我不知你看的是哪一级的版本,不过这个无所谓. 参考http://blog.csdn.net/sxhelijian/article/details/8167913,其中给出了一个将数字"可视化"并且能直观比对的效果. 你附图给出的,是在图形用户界面下的效果.在C++的相关的开发环境中可以