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 に答える