[Python-de] wxPython - Schleife richtig abbilden

Thomas Guettler guettli at thomas-guettler.de
Sam Nov 22 12:15:17 CET 2003


On Sat, Nov 22, 2003 at 11:49:54AM +0100, Axel Gerke wrote:
> Hallo zusammen,
> 
> ich entwickel gerade ein s.g. Debug-Tool für Zope mit einer GUI
> geschrieben in wxPython. Dieses soll die Abarbeitung der Request und
> Response Vorgänge dementsprechend abbilden. Das tool wird per Schleife
> den Medusa-Server "belauschen" und ein List-object regelmässig updaten.
> Nun zu meinem Problem: Wie nutze ich eine Schleife unter wxPython, ohne
> das die GUI hängt(z.B. mit einer while, größeren for-Schleife).
> im Prinzip müsste es etwas sein wie: schaue alle n Sekunden nach und
> dann tu etwas?!

Hallo,

Ich sehe zwei Möglichkeiten: Mit Threads oder mit select. Für beides
bietet Python Bibliotheken.

Mit select bekommt du heraus, ob bei einem file descriptor Daten
vorhanden sind oder nicht. Wenn du alle 2 Sekunden nachschaust ob neue
Daten da sind, wird die GUI nicht hängenbleiben. Unter Windows
funktioniert select jedoch nur für Sockets und nicht für Dateien.

Wenn es dir der Aufwand wirklich wert ist, dann würde ich Zope so
anpassen, dass es auf einem zusätzlicnen TCP Port lauscht, ob sich
jemand für die Debug Ausgaben interessiert. Der Debug-Client verbindet
sich mit dem Port und bekommt von dort die gewünschten Informationen.

Ehrlich gesagt wäre mir der Aufwand zu groß dafür eine GUI zu
schreiben. Wenn ich einen Programmfehler finden will, dann schreibe
ich an den entsprechenden Stellen mit "print" in das Log um der Sache
auf die Spur zu kommen. Wenn ich eine Statistik möchte, würde ich
ebenfalls mit print in das Log schreiben und das Log einmal täglich
mit einem Script auswerten.

 Trotzdem viel Spaß und Erfolg,
   Thomas

-- 
Thomas Guettler <guettli at thomas-guettler.de>
http://www.thomas-guettler.de