Fragen zu wx.lib.mixins.listctrl.*

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Vannid Burdon
User
Beiträge: 12
Registriert: Freitag 22. Dezember 2006, 14:51

Freitag 2. Februar 2007, 14:01

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.
Antworten