3

我正在使用 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)

当项目被选中或未选中时,以下都不会发出:

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)
4

1 回答 1

6

CheckListCtrlMixin不会发出取消/检查项目的事件。相反,它调用了可覆盖的方法:

def OnCheckItem(self, index, flag):
    "flag is True if the item was checked, False if unchecked"
    pass

要在课堂外“绑定”“事件” CheckListCtrl,您可以使用:

self.pluginlist.OnCheckItem = self.on_check_item
于 2012-11-28T00:49:09.417 回答