Я пытаюсь правильно отобразить индикатор выполнения, считая количество итераций цикла for.Когда цикл for запускается, окно tkinter появляется без индикатора выполнения и просто зависает.
Я попытался создать «count = 0», а затем прогресс должен иметь привязку «count + = 1» во время каждой итерации..
import time
import tkinter as tk
from tkinter import ttk
para1_range = [0,1,2,3,4,5,6,7,8,9,10]
MAX = len(para1_range)
count = 0
for k in range(0,len(para1_range)):
time.sleep(1)
root = tk.Tk()
root.geometry('{}x{}'.format(400, 100))
progress_var = tk.DoubleVar() #here you have ints but when calc. %'s usually floats
theLabel = tk.Label(root, text="Sample text to show")
theLabel.pack()
progressbar = ttk.Progressbar(root, variable=progress_var, maximum=MAX, mode="determinate")
progressbar.pack(fill=tk.X, expand=1)
def loop_function():
while count <= MAX:
### some work to be done
progress_var.set(count)
root.update_idletasks()
root.after(100, loop_function)
count += 1
loop_function()
root.mainloop()
Я ожидал индикатор выполнения, непосредственно отображающий ход выполнения цикла for.Вместо этого я получаю замороженное окно без индикатора выполнения.Есть идеи, что это не так с этим кодом?Очень ценится.