Я пытаюсь создать wx.Menu, которое будет совместно использоваться всплывающим окном (вызывается при щелчке правой кнопкой мыши) и подменю, доступным из строки меню фрейма. Следующий код демонстрирует проблему.
Если вы откроете «МЕНЮ> подменю» из меню, появится пункт «asdf». Если вы щелкнете правой кнопкой мыши в области содержимого фрейма, оттуда также будет видно «asdf» ... однако, вернувшись в меню, вы обнаружите, что «МЕНЮ> подменю» пусто. Почему это происходит и как я могу это исправить?
import wx
app = wx.PySimpleApp()
m = wx.Menu()
m.Append(-1, 'asdf')
def show_popup(evt):
''' R-click callback '''
f.PopupMenu(m, (evt.X, evt.Y))
f = wx.Frame(None)
f.SetMenuBar(wx.MenuBar())
frame_menu = wx.Menu()
f.MenuBar.Append(frame_menu, 'MENU')
frame_menu.AppendMenu(-1,'submenu', m)
f.Show()
f.Bind(wx.EVT_RIGHT_DOWN, show_popup)
app.MainLoop()
Интересно, что добавление меню в MenuBar работает, но это не то поведение, которое мне нужно:
import wx
app = wx.PySimpleApp()
m = wx.Menu()
m.Append(-1, 'asdf')
def show_popup(evt):
f.PopupMenu(m, (evt.X, evt.Y))
f = wx.Frame(None)
f.SetMenuBar(wx.MenuBar())
f.MenuBar.Append(m, 'MENU')
f.Show()
f.Bind(wx.EVT_RIGHT_DOWN, show_popup)
app.MainLoop()