Seite 1 von 1

Fragen zu wx.lib.mixins.listctrl.*

Verfasst: Freitag 2. Februar 2007, 14:01
von Vannid Burdon
Hallo, habe ein paar Fragen zu wx.lib.mixins.listctrl.

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()
Danke im voraus.