pysimplegui模块实现进度条

一、代码

import PySimpleGUI as sg
layout = [[sg.Text('任务完成进度')],
          [sg.ProgressBar(1000, orientation='h', size=(20, 20), key='progressbar')],
          [sg.Cancel()]]

window = sg.Window('机器人执行进度', layout)
progress_bar = window['progressbar']

for i in range(1000):
    event, values = window.read(timeout=10)
    if event == 'Cancel'  or event is None:
        break
    progress_bar.UpdateBar(i + 1)

window.close()

二、进阶应用

import pandas as pd

path = r"*****"
df = pd.read_excel(path)
layout = [[sg.Text('任务完成进度')],
          [sg.Text('', size=(5, 1), font=('Helvetica', 15), justification='center', key='text')],
          [sg.ProgressBar(len(df), orientation='h', size=(50, 20), key='progressbar')],
          [sg.Cancel()]]
window = sg.Window('机器人执行进度', layout)
progress_bar = window['progressbar']
# For循环
for i in range(0, len(df)):
    print(df.iloc[i])
    time.sleep(1) #假设处理的时间
    event, values = window.read(timeout=10)
    if event == 'Cancel' or event is None:
        break
    progress_bar.UpdateBar(i + 1)
    window['text'].update('{}%'.format(int(i / len(df) * 100)))
window.close()

原文地址:https://www.cnblogs.com/angelyan/p/12221670.html