我对如何动态获取每个盒子项状态的变化感到困惑。我无法理解如何将事件绑定到复选框列表中正在检查的特定框中。
目的是我有几个表示参数的框:
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)
当有人发生更改时,我无法注册更改列表,只有在调用另一个事件('开始')时才能读取列表。
答案 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)