1. Wie ist es möglich, bei zwei Spalten, nur eine als "editable" freizugeben und gleichzeitig aber die Funktionalität der Checkbox beizubehalten? [gelöst]
2. Wie ist es möglich, eine Dropdown Box in ein Listenfeld zu inkludieren.
Code: Alles auswählen
class MyList(wx.ListCtrl,
wx.lib.mixins.listctrl.CheckListCtrlMixin,
wx.lib.mixins.listctrl.TextEditMixin):
def __init__(self, parent):
wx.ListCtrl.__init__(self, parent, wx.NewId(), style=wx.LC_REPORT)
wx.lib.mixins.listctrl.CheckListCtrlMixin.__init__(self)
wx.lib.mixins.listctrl.TextEditMixin.__init__(self)
self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivate)
self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEndLabelEdit)
self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnBeginLabelEdit)
def SetupColumns(self, col1, col2):
self.InsertColumn(0, col1)
self.InsertColumn(1, col2)
def SetupRows(self, rows):
for row, (key, value) in enumerate(rows.items()):
rowIndex = self.InsertStringItem(row, str(key))
self.SetStringItem(rowIndex, 1, str(value))
def OnItemActivate(self, event):
self.ToggleItem(event.m_itemIndex)
def GetColmnText(self, index, col):
item = self.GetItem(index, col)
return item.GetText()
def OnEndLabelEdit(self, event):
self.RefreshItem(event.m_itemIndex)
def OnBeginLabelEdit(self, event):
if event.m_col == 0:event.Veto()