Hi!
Wie kann ich ein Tkinter Widget von "außen" steuern?
Ein Beispiel:
In einem Skript kopiere ich dateien. Wenn das Skript ausgeführt wird (ohne GUI z.B. per Aufruf auf der Kommandozeile), soll eine ProgressBar angezeigt werden, die den Fortschritt beim Kopieren anzeigt.
Die Aktion zum Kopieren soll dabei nicht in der GUI ausgelöst werden, sondern wie vorhin beschrieben durch das Ausführen des Skripts, welches die GUI anzeigt.
Progress Bars in Tkinter hab ich schon etliche ergoogelt. Mir ist nur nicht ganz klar wie ich die steuern kann. Nach dem Aufruf von "mainloop" wars das.
Muss ich dafür zwei Threads verwenden? Oder wie geht man da normalerweise vor?
Gruß,
shor
Tkinter Widgets von außen steuern
soll beides denn ein programm sein oder zwei unabhängige?
es sollten aus jeden fall unabhängige threads sein. der "arbeitende" thread sollte mit der gui über events kommunizieren oder die gui pollt über z.b. einen timer den thread.
es sollten aus jeden fall unabhängige threads sein. der "arbeitende" thread sollte mit der gui über events kommunizieren oder die gui pollt über z.b. einen timer den thread.
Hallo.
Du solltest deine GUI mit mainloop starten und zum Kopieren einen weiteren Thread. Die GUI fragt dann periodisch beim Thread nach, ob sich dessen Zustand geändert hat. Auf keinen Fall darf der Thread etwas in der GUI ändern. Das macht eigentlich kein GUI-Toolkit mit. Verwende einfach mal die Formussuche mit "Tkinter after".
Sebastian
Du solltest deine GUI mit mainloop starten und zum Kopieren einen weiteren Thread. Die GUI fragt dann periodisch beim Thread nach, ob sich dessen Zustand geändert hat. Auf keinen Fall darf der Thread etwas in der GUI ändern. Das macht eigentlich kein GUI-Toolkit mit. Verwende einfach mal die Formussuche mit "Tkinter after".
Sebastian
Das Leben ist wie ein Tennisball.