wxMenuItem = wxMenuSource.InsertRadioItem(order, wx.ID_ANY, test, "")
App.Bind(wx.EVT_MENU, OnPerspective_Click, wxMenuItem)
order += 1
我按程序插入收音机项目,当我单击菜单项时,我的程序崩溃了,我不知道发生了什么......
wxMenuItem = wxMenuSource.InsertRadioItem(order, wx.ID_ANY, test, "")
App.Bind(wx.EVT_MENU, OnPerspective_Click, wxMenuItem)
order += 1
我按程序插入收音机项目,当我单击菜单项时,我的程序崩溃了,我不知道发生了什么......
我遇到过这个,并没有一个很好的“修复”。问题是当您尝试动态添加或插入单选按钮时,它们没有正确分组。我可以想出的最好的解决方法是我将这个方法添加到我的 MenuBar 类中,以便为我重新创建一个服务器菜单。
def setServers(self):
menu = Menus['Servers']
while menu.GetMenuItemCount() > 2:
menu.RemoveItem(menu.FindItemByPosition(2))
menu.AppendSeparator()
servers = Config.getValueList('rpcservers', ['hostname', 'port', 'state'])
for s in servers:
id = wx.NewId() #@ReservedAssignment
evtname = 'S%s:%s' % (s['hostname'], s['port'])
connection = '%s:%s' % (s['hostname'], s['port'])
menu.Append(id, connection, s['description'], kind = wx.ITEM_RADIO)
if s['state'] == 'inuse':
menu.Check(id, True)
那里的一些代码没有直接相关(对不起,快速复制和粘贴),但这里的想法是单选按钮的元素都在这个菜单的底部。在添加分隔符和所有新的单选按钮之前,我删除了所有元素和分隔符。通过以这种方式重新创建它们,我能够绕过我遇到的错误,即新添加的单选按钮与其兄弟按钮无关。希望这会有所帮助。如果您需要澄清,请告诉我。