Bind von EVT_MENU ruft die Funktion nicht auf
Verfasst: Mittwoch 23. Februar 2011, 21:50
Hallo zusammen,
ich bin gerade dabei mein Projekt von Tkinter auf wxPython umzuziehen, also noch etwas unsicher.
Im folgenden Codeschnipsel versuche ich, automatisiert mein Menü aufzubauen (was auch klappt), einzig der Eventhandler macht genau gar nichts. Genauer gesagt, er wird nicht aufgerufen.
key ist einfach ein String
entry ist die Funktion, die aufgerufen werden soll:
Wie gesagt, das Einbinden des Menüpunktes funktioniert, jedoch beim Anklicken wird der Handler nicht aufgerufen.
Kann mir jemand sagen, was ich hier falsch mache? (vermutlich ein typischer Anfängerfehler ...)
(Achja: sollten automatisch zugewiesene ids nicht < 0 sein? Sind sie hier nicht ...)
Gruß und Danke im Voraus!
Ulrich
ich bin gerade dabei mein Projekt von Tkinter auf wxPython umzuziehen, also noch etwas unsicher.
Im folgenden Codeschnipsel versuche ich, automatisiert mein Menü aufzubauen (was auch klappt), einzig der Eventhandler macht genau gar nichts. Genauer gesagt, er wird nicht aufgerufen.
key ist einfach ein String
entry ist die Funktion, die aufgerufen werden soll:
Code: Alles auswählen
commandItem = menu.Append(-1, key) # add entry
print commandItem, commandItem.GetId(), entry
handler = ( lambda evt: entry() )
self.Bind(wx.EVT_MENU, handler, id=commandItem.GetId() ) # add handler
Wie gesagt, das Einbinden des Menüpunktes funktioniert, jedoch beim Anklicken wird der Handler nicht aufgerufen.
Kann mir jemand sagen, was ich hier falsch mache? (vermutlich ein typischer Anfängerfehler ...)
(Achja: sollten automatisch zugewiesene ids nicht < 0 sein? Sind sie hier nicht ...)
Gruß und Danke im Voraus!
Ulrich