GUI und Schleife

Fragen zu Tkinter.
Antworten
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Freitag 26. September 2008, 14:38

Hallo

Ist wahrscheinlich ein uraltes Thema, aber daran scheitere ich immer.

Aktuelles Problem:

eine GUI soll den inhalt einer Datei wiedergeben in einer Listbox, das ist kein problem.
Aber die Datei wird ständing verändert, wie halte ich die Listbox aktuell?

ohne GUI mache ich das so:
-Threadstarten
-Schleife durchlaufen lassen
-Variable aktualisieren

Wie kann ich nun am besten die Listbox alle 2 sek. aktualisieren ohne das die GUI blokiert?

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Lonestar
User
Beiträge: 147
Registriert: Samstag 9. August 2008, 08:31

Freitag 26. September 2008, 15:26

vielleicht brauchst du ja gar nicht alle 2 Sec. die Datei neu laden wenn du vorher überprüfst ob die Datei seit dem letzten laden nicht verändert wurde. Ansonsten würde ich das Laden evtl von einem Anderen Thread erledigen lassen der den aktuellen Dateiinhalt zur Verfügung stellt.
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Freitag 26. September 2008, 15:57

Hallo

@Lonestar
Das mit den Datumsüberprüfung ist eine gute Idee und auch schon eingebaut.

Ich habe das Problem gelöst.
Ich habe mir einfach mit after eine art Schleife gebaut.

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Freitag 26. September 2008, 16:13

Andyh hat geschrieben:Ich habe das Problem gelöst.
Ich habe mir einfach mit after eine art Schleife gebaut.
Ja, das ist der richtige Weg. Du baust eine entsprechende Funktion, die sich mittels after() selbst in festgelegten Abständen wieder aufruft. Das läuft dann im Hintergrund und blockiert nicht die GUI.
Antworten