我正在使用CheckListCtrlMixin让用户为我的应用程序启用和禁用插件.我想在用户检查/取消选中列表中的项目后立即更新我的内部模型.检查项目时,CheckListCtrlMixin发出什么事件?
class CheckListCtrl(wx.ListCtrl,
CheckListCtrlMixin, ListCtrlAutoWidthMixin):
def __init__(self, parent):
wx.ListCtrl.__init__(self, parent, -1,
style=wx.LC_REPORT | wx.SUNKEN_BORDER)
CheckListCtrlMixin.__init__(self)
ListCtrlAutoWidthMixin.__init__(self)
Run Code Online (Sandbox Code Playgroud)
选中或取消选中某个项时,以下任何一项都不会发出:
self.pluginlist = CheckListCtrl(win)
... add a bunch of items to the list ...
self.pluginlist.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.on_item_activated)
self.pluginlist.Bind(wx.EVT_LIST_ITEM_SELECTED, self.on_item_selected)
Run Code Online (Sandbox Code Playgroud)
CheckListCtrlMixin不会发出取消/检查项目的事件.相反,它调用overridable方法:
def OnCheckItem(self, index, flag):
"flag is True if the item was checked, False if unchecked"
pass
Run Code Online (Sandbox Code Playgroud)
要在CheckListCtrl课堂外"绑定""事件" ,您可以使用:
self.pluginlist.OnCheckItem = self.on_check_item
Run Code Online (Sandbox Code Playgroud)