使用wxpython CheckListBox,如果选中另一个框,如何自动取消选中该框?

时间:2014-05-05 08:41:48

标签: python wxpython

我对如何动态获取每个盒子项状态的变化感到困惑。我无法理解如何将事件绑定到复选框列表中正在检查的特定框中。

目的是我有几个表示参数的框:

A,B,C,D,E,全部

'所有'默认情况下已激活,我希望如果选中另一个框,则“全部”#39;自动取消选中。

我将如何做到这一点?

    self.list_choice = ['A', 'B', 'C', 'D', 'E', 'All']
    pos = (5, 20)
    self.list_param = wx.CheckListBox(self, wx.ID_ANY, pos, wx.DefaultSize,
                                         self.list_choice, style=1)

    self.list_param.Check(5, True)

当有人发生更改时,我无法注册更改列表,只有在调用另一个事件('开始')时才能读取列表。

1 个答案:

答案 0 :(得分:1)

为什么不将list_param绑定到wx.EVT_CHECKLISTBOX事件,如果检查了其他任何内容,则会取消选中All,这样?

self.Bind(wx.EVT_CHECKLISTBOX, self.check_list_param, self.list_param)

def check_list_param(self, evt): 
    checked = self.list_param.GetChecked()
    if len(checked) > 1 and 5 in checked:
        self.list_param.Check(5, check=False)