wx Statusfenster für Konsolenprogramm

Plattformunabhängige GUIs mit wxWidgets.
Antworten
g4borg
User
Beiträge: 16
Registriert: Donnerstag 4. Oktober 2007, 20:38

Mittwoch 27. August 2008, 08:17

Hi

Ich bin derzeit am Herumprobieren, ob ich einem bestehenden Konsolenprogramm, welches andere Prozesse startet und gewisse Aufgaben erledigt - im Hintergrund - die Fähigkeiten geben könnte, bei bestimmten Prozessen am Beginn der Aufgabe ein wx Fenster zu erzeugen, welches zB anzeigt "Upgrade läuft, bitte warten...", und dieses wx Fenster wieder verschwinden lässt wenn es fertig ist.

Möglichkeit eins wäre, ein wx App zu erstellen und das gesamte Konsolenscript darin einzutüfteln. Das würd ich gern wenn es geht umschiffen, indem ich

Möglichkeit zwei finden möchte, bei dem ich ein Panel erzeuge, es anzeige, und danach einfach kein Application Mainloop benutze, sondern das Panel einfach einmal darstelle und dann meinen Code ausführe und am Ende das Panel wieder zerstöre.

Das Problem hierbei ist, dass leider das Panel nicht fertig gezeichnet wird, obwohl ich bei der initialisierung des Panels / Windows Updates und Refreshes ausführe.

Ist es irgendwie möglich wx Elemente darzustellen, ohne dabei ein Application MainLoop auszuführen (welches ja blocken würde, und damit meinen anderen Code nicht ausführt...)

Das Fenster braucht auf keine Interaktionen des Users zu reagieren, somit braucht es keine Eventschleife, und alles was ich dann am Ende ausführen will, ist das Zerstören des Fensters, wenn ich im Hintergrund fertig bin.

Wie würdet ihr das lösen?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 27. August 2008, 13:38

Hoi,

probiere mal Traits aus der Enthought Tool Suite. Ich habe mal eine Demo gesehen, die genau das gemacht hat, was Du erreichen möchtest. Es greift intern auf wxPython (oder PyQt) zurück und Du kannst im Skript / Programm Parameter setzen, die sofort im GUI wiederspiegelt sind.

Gruß,
Christian
Antworten