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()
在 wxPython 4.0.0 版中,该行:
if event.m_col == 1
不起作用。采用
if event.GetColumn() == 1
反而。
我记得,您必须绑定到 EVT_LIST_BEGIN_LABEL_EDIT。然后在您的事件处理程序中,您只需检查您所在的列,如果您位于您希望可编辑的列中,则执行“event.Allow()”,否则您否决。