wxframe udaten/refreshen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Ich suche die ganze Zeit, nach den Events von einem wxFrame im Netz. Finde kaum was dazu.
Ich habe einen Frame, der manchmal refresht werden muß. Das heißt, beim ersten aufrufen, also im __init__ soll das Frame mit Werten gefüllt werden. Jetzt finde ich aber kein passendes Event dazu. Habe einfach mal das PAINT Event genommen. Allerdings ist das nen bischen doof, weil ich mache Datenbankabfragen, und die in den PAINT Event zu packen, bringt nur Overhead. Jetzt überlege ich gerade, das mit einem Flag zu steuern, um einmal am Anfang das Frame zu beschreiben. Aber ich meine doch, da gibt es doch noch andere Events, die besser geeignet wären doch bei google unter "wxframe und Events" finde ich nichts passendes. Kennt jemand ne Seite wo die Standard Events beschrieben sind?
BlackJack

@The Hit-Man: Ich verstehe das Problem nicht so recht was Du lösen willst!? Welches Event in einem Frame sollte denn eine Anzeige von neuen Daten auslösen? Normalerweise passiert das doch wenn der Benutzer eine Schaltfläche betätigt oder etwas ähnliches. Wenn es "einfach so" regelmässig passieren soll, gibt es Timer. Das hat alles nichts mit den Events auf einem Frame zu tun.
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

hmmmm, kenne das irgendwie noch von den WindowsForms. Zum Beispiel, wenn du ein Hauptfenster hast, dann einen Dialog drüber legst. Wenn der Dialog dann geschlossen wird, müßte ich das Hauptfenster refreshen, um neue Daten anzuzeigen, wie zum Beispiel einen geänderten Datensatz, den du über den Dialog geändert hast. Da würde ich dann irgendwie nen OnFocus Event vom Hauptfenster nehmen, um es zu aktualisieren. Oder die RefreshMethode vom Frame überschreiben, wo ich dann noch einige Sachen selber reinschreiben, wie eben zum Beispiel nen Textfeld neu beschreiben.
Kann ich eigentlich unter Python, die RefreshMethode vom Frame überschreiben? Oder wird das in dem wxWidgets anders gelöst.
BlackJack

@The Hit-Man: Was das Aktualisieren anstossen sollte ist das schliessen des Dialogs und nicht der Fokus des Fensters. Denn das was am Ende des Dialogs gemacht wird, verändert ja die Daten und nicht dass ein Fenster den Fokus bekommt. Das kommt doch auch öfter vor ohne das sich die Daten geändert haben. Letztlich sollte das nicht von irgendwelchen GUI-Aktionen direkt abhängen sondern die Anzeige sollte aktualisiert werden wenn das Datenmodell geändert wurde, unabhängig davon was *dafür* der Auslöser war.

Das ist jedenfalls völlig unabhängig vom GUI-Toolkit die übliche, saubere Vorgehensweise. Das MVC-Entwurfsmuster halt.
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

@BlackJack
bin noch nicht so ganz vertraut mit den wxWidgets. Unter den WindowsForms, habe ich es immer so gelöst, wie beschrieben, also über die Events von den Fenstern. Zum Beispiel wüßte ich jetzt nicht genau, wie ich beim ersten Aufruf von einem wxFrame, meine Textfelder füllen sollte, die sich ja auf dem Frame befinden. Ich würde die ja jetzt quick and dirty in den Konstruktor packen, also im __init__. Bin mir nur nicht sicher, ob das auch da hin gehört.
Achja, die Forms bastel ich mit wxglade zusammen.
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Habs jetzt wohl gerafft ;) So wie ich es erst vor hatte, brauche ich es gar nicht ;)
Antworten