Funktionsaufruf nach Schliessen eines wx widgets?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Frederik
User
Beiträge: 11
Registriert: Dienstag 28. April 2009, 00:37

Hallo,
kurze Frage: Ich moechte nach dem Schliessen eines wx.Frame-widgets einen reload eines Moduls durchfuehren, brauche dafuer aber einen Trigger, der mir sagt, wann das widget geschlossen wurde. Hat da jemand eine Idee?

Code: Alles auswählen

def OnPreferences(self,event):
	dlg = mdaProSettings.MyFrame(None, -1, "Settings Menu")
	dlg.Show()

	**if dlg closed: reload(module)**
Herzlichen Dank im Voraus!

Frederik
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

Frederik hat geschrieben:Hallo,
kurze Frage: Ich moechte nach dem Schliessen eines wx.Frame-widgets einen reload eines Moduls durchfuehren, brauche dafuer aber einen Trigger, der mir sagt, wann das widget geschlossen wurde. Hat da jemand eine Idee?
[...]
Reicht es, wenn du deinen Dialog mit ShowModal aufrufst?
Dieser Aufruf kehrt erst zurück, wenn der Dialog mit Ok oder Abbrechen geschlossen wurde. (1) (2)
Norbert

(1) sollte das nicht ins wx-Unterforum?
(2) reload? Das klingt nicht nach einer guten Idee, eher nach selbst modifizierendem Code oder nach Code, der auf Modulebene statt in einer Funktion ausgeführt wird. Evtl. solltest du den Lösungsansatz für dein Problem nochmals überdenken.
Frederik
User
Beiträge: 11
Registriert: Dienstag 28. April 2009, 00:37

Leider hat wx.Frame kein Attribut ShowModal().

zu (1): ja :|
zu (2): jein, es handelt sich um Laden von Variablen, die waehrend des wx.Frame-Aufrufes in eine externe .py-Datei geschrieben werden.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

wie wäre es mit

Code: Alles auswählen

self.Bind(wx.EVT_CLOSE, self.OnClose)
gruß Mathi
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

Frederik hat geschrieben:Leider hat wx.Frame kein Attribut ShowModal().

zu (1): ja :|
zu (2): jein, es handelt sich um Laden von Variablen, die waehrend des wx.Frame-Aufrufes in eine externe .py-Datei geschrieben werden.
Hm, das *ist* selbstmodifizierender Code, und i.d.R. keine gute Idee. Kannst du deine Variablen nicht in eine beliebige Datei packen und diese dann mit den üblichen Verdächtigen einlesen statt als Modul zu laden?

Ansonsten zu dem eigentlichen Problem: Nimm wx.Dialog statt wx.Frame, die Dialoge sind genau für solche Fälle wie deinen gemacht. Wenn es unbedingt ein Frame sein muss, dann hat dir ja Mathi schon einen Tipp gegeben.

Gruß
Norbert
Antworten