PySimpleGUI - ProgressBar 进度条元素

有时,计算机操作可能非常冗长,需要花费大量时间才能完成。 因此,用户可能会不耐烦。 因此,重要的是让他知道应用程序的进度状态。 ProgressBar 元素直观地指示到目前为止已完成的进程量。 它是一个垂直或水平的彩色条,由对比色渐增着色,以表明该过程正在进行中。

ProgressBar 的构造函数除了继承自 Element 类的那些常用参数外,还有以下参数 −

PySimpleGUI.ProgressBar(max_value, orientation, size, bar_color)

需要max_value参数来校准条的宽度或高度。 Orientation 可以是水平的也可以是垂直的。 size 是(chars long, pixels wide))如果是水平的,如果是垂直的则是(chars high, pixels wide)。 bar_color 是构成进度条的两种颜色的元组。

update() 方法修改 ProgressBar 对象的以下一个或多个属性 −

  • current_count − 设置当前值

  • max − 设置最大值

  • bar_color − 构成进度条的两种颜色。 第一种颜色显示进度。 第二种颜色是背景。

下面给出了 ProgressBar 控件如何使用的简单演示。 窗口的布局由一个进度条和一个测试按钮组成。 单击时,将开始一个从 1 到 100 的 for 循环

import PySimpleGUI as psg
import time
layout = [
   [psg.ProgressBar(100, orientation='h', expand_x=True, size=(20, 20),  key='-PBAR-'), psg.Button('Test')],
   [psg.Text('', key='-OUT-', enable_events=True, font=('Arial Bold', 16), justification='center', expand_x=True)]
]
window = psg.Window('Progress Bar', layout, size=(715, 150))
while True:
   event, values = window.read()
   print(event, values)
   if event == 'Test':
      window['Test'].update(disabled=True)
      for i in range(100):
         window['-PBAR-'].update(current_count=i + 1)
         window['-OUT-'].update(str(i + 1))
         time.sleep(1)
         window['Test'].update(disabled=False)
   if event == 'Cancel':
      window['-PBAR-'].update(max=100)
   if event == psg.WIN_CLOSED or event == 'Exit':
      break
window.close()

它将产生以下输出窗口 −

进度条

❮ PySimpleGUI 元素类