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 mussBisher 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?