Seite 1 von 1

Statuszeile mit Daten aus Datei verändern

Verfasst: Mittwoch 25. November 2009, 12:25
von api
Hallo,

ich habe in einer GUI - Tkinter - einen Start-Button, der ein anderes Programm aufruft. Dieses andere Programm schreibt eine Stati in eine Datei. Diese Datei möchte ich nun in der Form in meiner GUI auslesen, dass dort ständig ein Status-Label aktualisiert wird.
Ich rufe dieses externe Programm mit "os.system(...)" auf. Wartet die GUI in diesem Fall so lange bis das externe Programm fertig ist? Oder kann die GUI auch ständig diese Datei auslesen und dann den dort gelesenen Status anzeigen? Hat das eventuell was mit Threading zu tun oder wie soll ich mich dem Problem nähern?

Verfasst: Mittwoch 25. November 2009, 12:37
von Defnull
Benutz subprocess statt os.system und lies die Dokumentation, dort werden alle deine Fragen beantwortet.

http://docs.python.org/library/subproce ... subprocess

Verfasst: Mittwoch 25. November 2009, 12:48
von api
Hallo Defnull,

danke für die Info - werde ich mal durchstöbern...

Re: Statuszeile mit Daten aus Datei verändern

Verfasst: Mittwoch 25. November 2009, 15:32
von numerix
api hat geschrieben:ich habe in einer GUI - Tkinter - einen Start-Button, der ein anderes Programm aufruft. Dieses andere Programm schreibt eine Stati in eine Datei. Diese Datei möchte ich nun in der Form in meiner GUI auslesen, dass dort ständig ein Status-Label aktualisiert wird.
Das Stichwort hier wäre die "after()-Methode" von Tkinter, die du nutzen kannst, um in bestimmten selbst festlegbaren Abständen "etwas" zu tun.

Threads sind in Verbindung mit Tkinter in der Regel keine gute Idee (dazu findest du einiges im Forum) und in diesem Fall auch nicht nötig.

Verfasst: Mittwoch 25. November 2009, 16:55
von jtk
system wartet auch, aber da steht der ganze prozess still, und das fenster könnte sich (zumindest bei windows, wie das halt so is) aufhängen.