wxMenuItem = wxMenuSource.InsertRadioItem(order, wx.ID_ANY, test, "")
App.Bind(wx.EVT_MENU, OnPerspective_Click, wxMenuItem)
order += 1
我在程序上插入广播项目,当我点击菜单项时我的程序崩溃,我不知道发生了什么......
答案 0 :(得分:0)
我遇到过这个,并没有真正的“修复”。问题是当您尝试动态添加或插入单选按钮时,单选按钮无法正确分组。我可以想出最好的工作,我添加到我的MenuBar类中为我重新创建Servers菜单。
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)
那里的一些代码没有直接相关(抱歉,快速复制和粘贴),但这里的想法是单选按钮的元素都在这个菜单的底部。在添加分隔符和所有新单选按钮之前,我删除了所有元素和分隔符。通过以这种方式重新创建它,我能够规避我遇到的错误,其中新添加的单选按钮与其兄弟姐妹无关。希望这会有所帮助。如果您需要澄清,请告诉我。