Tkinter: ProgressBar mit unbestimmter Dauer

Ich möchte einen Fortschrittsbalken in Tkinter implementieren, der die folgenden Anforderungen erfüllt:

Der Fortschrittsbalken ist das einzige Element im HauptfensterEs kann durch einen Startbefehl gestartet werden, ohne dass eine Taste gedrückt werden mussEs kann warten, bis eine Aufgabe mit unbekannter Dauer beendet istDie Anzeige des Fortschrittsbalkens bleibt in Bewegung, solange die Aufgabe noch nicht abgeschlossen istEs kann durch einen Stoppbefehl geschlossen werden, ohne dass eine Stoppleiste gedrückt werden muss

Bisher habe ich folgenden Code:

import Tkinter
import ttk
import time

def task(root):
    root.mainloop()

root = Tkinter.Tk()
ft = ttk.Frame()
ft.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD = ttk.Progressbar(ft, orient='horizontal', mode='indeterminate')
pb_hD.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD.start(50)
root.after(0,task(root))
time.sleep(5) # to be replaced by process of unknown duration
root.destroy()

Hier besteht das Problem darin, dass der Fortschrittsbalken nach Ablauf der fünf Sekunden nicht angehalten wird.

Kann mir jemand helfen, den Fehler zu finden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage