Seite 1 von 1
Welches Event wenn ein Panel angezeigt wird?
Verfasst: Dienstag 19. Oktober 2010, 23:16
von Gremlin
Hallo,
ich habe mir grade überlegt, welches Event aufgerufen wird, wenn ein wx.Panel mit Show() oder Hide() ein/ausgeblendet wird. Primär gehts mir ums einblenden.
Nachdem mir Google und die Doku nicht helfen konnten (Die Suchfunktion hier auch nicht.), hab ich ein wenig rumprobiert und bin zu folgendem Ergebnis gekommen:
Code: Alles auswählen
def size_event(self, event):
print 'wird angezeigt'
event.Skip()
Aber gibt es da vielleicht doch noch eine andere Möglichkeit?
Edit: Mir fällt grad auf, dass das sowieso nicht funktioniert... Wird ja nur einmal aufgerufen

Re: Welches Event wenn ein Panel angezeigt wird?
Verfasst: Mittwoch 20. Oktober 2010, 13:32
von ntrunk
Hi Gremlin,
evtl. könntest du die Hide-/Show-Methode überschreiben?
Gruß
Norbert
Re: Welches Event wenn ein Panel angezeigt wird?
Verfasst: Mittwoch 20. Oktober 2010, 15:37
von Gremlin
Autsch. Mal abgesehen von dieser Schnapsidee mit dem Size-Event jetzt auch noch das
Ja, das ist eine Möglichkeit, Danke

Re: Welches Event wenn ein Panel angezeigt wird?
Verfasst: Donnerstag 21. Oktober 2010, 07:48
von mutetella
Ich weiß es nicht wirklich, nur so ein spontaner Einfall: Vielleicht wird ja der wxEVT_PAINT beim Einblenden getriggert?
Die Doku sagt:
"A paint event is sent when a window's contents needs to be repainted."
Gruß
mutetella
Re: Welches Event wenn ein Panel angezeigt wird?
Verfasst: Donnerstag 21. Oktober 2010, 08:03
von mutetella
Ist mir gerade eingefallen: Wenn alles nichts hilft, dann verwende doch das "wxPython Inspection Widget Tool". Das bietet einen "EventWatcher", der Dir alle Events, die getriggert werden, auflistet. Wenn Du dann Dein Panel ein-/ausblendest, erscheint dort das passende Event.
Um das Tool zu starten, muss Deine Anwendung 'wx.lib.inspection' importieren und das 'InspectionTool' über die wx.App() gestartet werden:
Code: Alles auswählen
class App(wx.App, wx.lib.inspection.InspectionTool):
def __init__(self):
wx.App.__init__(self)
def OnInit(self):
self.Init()
self.Show()
Vielleicht hilft's...
Gruß
mutetella
Re: Welches Event wenn ein Panel angezeigt wird?
Verfasst: Donnerstag 21. Oktober 2010, 16:06
von Gremlin
mutetella hat geschrieben:Ist mir gerade eingefallen: Wenn alles nichts hilft, dann verwende doch das "wxPython Inspection Widget Tool".
Woah, wie geil ist das denn? Damit macht Gui Design ja nochmal mehr Spaß.
Und ja, damit hab ich auch das Event rausbekommen (Der Name ist überhaupt nicht nachzuvollziehen..

): wx.EVT_SHOW
Allerdings gefällt mir die Sache mit der eigenen Show() Methode irgendwie besser.
Danke mutetella
