python中progress_python-progress-进度条-Go语言中文社区

0.摘要

本文主要介绍在python3环境下使用progress库显示程序运行进度条。

python3中安装progress:pip install progressbar2

python2中安装progress:pip install progressbar

1.三个步骤

progressbar的基础步骤为:start,update,finish

start(max_value=None, init=True):Starts measuring time, and prints the bar at 0%。

update(value=None, force=False, **kwargs): Updates the ProgressBar to a new value。

finish(end='n') :Puts the ProgressBar bar in the finished state。

import progressbar

def fun(n):

if n == 1 or n == 2:

return 1

else:

return fun(n-1) + fun(n-2)

if __name__ == '__main__':

p = progressbar.ProgressBar()

max_value = 100

p.start(max_value)

for n in range(max_value):

fun(n+1)

p.update(n+1)

p.finish()

如果没有finish步骤,进度条达到100%后自动退出。

2.配置方法

ProgressBar类在实例化的时候,可以通过widgets参数进行进度条样式设置。

import time

import progressbar

if __name__ == '__main__':

widgets = [ 'My progress1 :',' [', progressbar.Timer(), '] ',progressbar.Bar('&'), ' (', progressbar.ETA(), ') ']

p = progressbar.ProgressBar(widgets=widgets)

max_value = 100

p.start(max_value)

for n in range(max_value):

time.sleep(0.001 * n)

p.update(n+1)

p.finish()

widgets参数设置的是进度条的样式。进度条显示的样式将按照列表中元素的顺序进行显示,类似于print函数。

下面对例子中的widgets参数进行详细介绍:

显示出来的进度条正如我们配置的那样:

以'My progress1 :'打头;之后'[]'中存放progressbar.Timer();后跟进度条progressbar.Bar('&'),以‘&’作为进度条的符号;以放在括号中的progressbar.ETA()结尾。

Bar('#') : 调用进度条步进框,并以‘#’符号显示。

Timer() :已用时间。

ETA() : 预计剩余时间。

Percentage() :进度百分比。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是使用 PyQt5 和 tqdm 模块实现的更新进度条示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton from PyQt5.QtCore import QThread, pyqtSignal from tqdm import tqdm class ProgressThread(QThread): progress_signal = pyqtSignal(int) def __init__(self, total): super().__init__() self.total = total def run(self): for i in tqdm(range(self.total)): self.progress_signal.emit(i) class ProgressBar(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(100, 100, 300, 100) self.setWindowTitle('Progress Bar') self.progress_bar = QProgressBar(self) self.progress_bar.setGeometry(20, 20, 260, 20) self.start_button = QPushButton('Start', self) self.start_button.setGeometry(20, 60, 75, 23) self.start_button.clicked.connect(self.start_progress) self.stop_button = QPushButton('Stop', self) self.stop_button.setGeometry(100, 60, 75, 23) self.stop_button.clicked.connect(self.stop_progress) self.show() def start_progress(self): self.thread = ProgressThread(100) self.thread.progress_signal.connect(self.update_progress) self.thread.start() def stop_progress(self): self.thread.terminate() def update_progress(self, value): self.progress_bar.setValue(value) if __name__ == '__main__': app = QApplication(sys.argv) bar = ProgressBar() sys.exit(app.exec_()) ``` 这个示例程序创建了一个简单的窗口,包含一个进度条和两个按钮。当用户点击“Start”按钮时,程序将启动一个后台线程来执行进度条更新任务。当用户点击“Stop”按钮时,程序将停止后台线程。进度条更新任务使用 tqdm 模块来显示进度条。通过使用 pyqtSignal,我们可以在后台线程和主线程之间进行通信,从而实现进度条的更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值