Вот примерно минимальный наглядный пример:
import wx
app = wx.App(False)
frame = wx.Frame(None)
menuBar = wx.MenuBar()
menu = wx.Menu()
menuBar.Append(menu, "&Menu")
frame.SetMenuBar(menuBar)
for name in ['foo','bar','baz']:
menuitem = menu.Append(-1,"&"+name,name)
def menuclick(e):
print(name)
frame.Bind(wx.EVT_MENU, menuclick, menuitem)
frame.Show(True)
app.MainLoop()
Проблема в том, что при нажатии на каждый пункт меню выводится «baz». Разве функция menuclick
не должна обернуть соответствующее имя в закрытие и сохранить оригинальное имя?