wxPython菜单-取消选择所有单选按钮(wx.单选项)

wxPython菜单-取消选择所有单选按钮(wx.单选项),python,python-2.7,radio-button,wxpython,menuitem,Python,Python 2.7,Radio Button,Wxpython,Menuitem,我正在开发我的第一个wxpython应用程序。它是comandline实用程序的GUI,需要连接到samba共享。现在,我想将服务器选项作为单选按钮添加到菜单中。 Im将ConfigParser用于设置ini文件,该文件还保存默认服务器的配置以及 它应该连接的服务器 现在,我想取消选择所有单选按钮,如果没有选择默认服务器,并且程序没有连接 启动 以下是我将收音机项目添加到菜单的代码: (我知道这可能做得更好,但我仍在学习,我很高兴它能起作用,欢迎任何推荐) 不要使用list作为变量名,我也希望您

我正在开发我的第一个wxpython应用程序。它是comandline实用程序的GUI,需要连接到samba共享。现在,我想将服务器选项作为单选按钮添加到菜单中。 Im将ConfigParser用于设置ini文件,该文件还保存默认服务器的配置以及 它应该连接的服务器

现在,我想取消选择所有单选按钮,如果没有选择默认服务器,并且程序没有连接 启动

以下是我将收音机项目添加到菜单的代码: (我知道这可能做得更好,但我仍在学习,我很高兴它能起作用,欢迎任何推荐)


不要使用list作为变量名,我也希望您能使用此代码获得一个索引器……

您是对的,似乎您必须在菜单项中签入一些内容,因此添加一个虚拟项是解决此问题的一种实用方法,但有一种更简单的方法来设置所选项。e、 g.
b_m=wx.Menu()
b_m.附录项目(1,“全屏显示”)
b_m.附加项(2,“全屏关闭”)
self.Bind(wx.EVT_菜单,self.OnFScrOn,id=1)
self.Bind(wx.EVT_菜单,self.OnFScrOff,id=2)
b_m.检查(2,正确)

最后一行将菜单项ID2设置为True

我也会认为这是一个索引问题
列表[i]。选中(False)


正如Joran上面提到的

这导致:
AttributeError:'str'对象没有属性'Check'
代码工作正常,没有注意到任何错误。Check(True)也有效,但Check(False)似乎被忽略。为菜单项创建变量的更好解决方案是什么?谢谢,似乎不可能停用菜单中的所有单选按钮。我的解决方案,添加另一个(未连接),然后禁用此解决方案。它仍然可以在函数中签入,但它已变灰,因此用户无法与其交互。
# Create a List to be used as variables
for i in range(1,7):
    list.append('radiobutton{}'.format(str(i)))
# Append the RadioButtons
for i in range(1,7):
    num = str(i)
    # Load Sections of ini (every server has its own section, up to 6 are allowed)
    config_sec = Config.sections()
    if filter(lambda x: 'Server{}'.format(num) in x, config_sec):
        name = LoadConfig("Server{}".format(num))['connection name']
        list[i] = wx.MenuItem(self.wpkg_server, 400+i, name, 'Connect to Server: {} ?'.format(name), kind=wx.ITEM_RADIO)
        self.wpkg_server.AppendItem(list[i])
        # Get Default server setting from ini
        default_server = LoadConfig("Options")['default server']
        # Try if default_server is a valid number that can be converted to int
        try:
            int(default_server)
        except ValueError:
            # This is the part not working, if there is no default server set i want to uncheck
            # deselect all added items but with no luck.
            # the first item is always selected if no default server was set
            list[i].Check(False)
        else:
            if i == int(default_server):
                # Selecting the correct radio button if it is the default server works fine
                list[i].Check(True)
                self.statusbar.SetStatusText('Connected to Server: {}!'.format(name))
[menu.Check(False) for menu in my_list]