Отображение индикатора выполнения из итераций цикла for - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь правильно отобразить индикатор выполнения, считая количество итераций цикла 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.Вместо этого я получаю замороженное окно без индикатора выполнения.Есть идеи, что это не так с этим кодом?Очень ценится.

...