ListCtrl
withを使用するときに、ユーザーによる特定のセルの編集を無効にする方法はありますTextEditMixin
か?
編集イベントを拒否する方法があると思いますが、見つかりません。
イベント wx.EVT_LIST_BEGIN_LABEL_EDIT:
class EditableListCtrl(wx.ListCtrl, listmix.TextEditMixin):
def __init__(self, parent, ID=wx.ID_ANY, pos=wx.DefaultPosition,
size=wx.DefaultSize, style=0):
wx.ListCtrl.__init__(self, parent, ID, pos, size, style)
listmix.TextEditMixin.__init__(self)
self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnBeginLabelEdit)
def OnBeginLabelEdit(self, event):
if event.m_col == 1:
event.Veto()
else:
event.Skip()
思い出したように、EVT_LIST_BEGIN_LABEL_EDIT にバインドする必要があります。次に、イベント ハンドラーで現在の列を確認し、編集可能にしたい列にいる場合は「event.Allow()」を実行し、そうでない場合は拒否します。