Datensatz aus einer ListCtrl auslesen
Verfasst: Mittwoch 22. Juli 2009, 11:25
Hey,
habe mal wieder ein Problem bei dem ich Eure hilfe bräuchte.
Ich möchte ein Programm schreiben welches eine Datenbank in einer "ListCtrl" mit mehreren "Columns" (z.B. Titel, Regisseur) ausgibt. Und wenn ich eine von den Zeilen anklicke, sollen die einzelnen Werte im gleichen Fenster in dafür vorgesehen "TextCtrl"s angezeigt werden.
Bei der "ListCtrl" habe ich als Event "wx.EVT_LIST_ITEM_SELECTED".
Wie ich bei "TextCtrl" Werte einfügen kann habe ich auch schon heraus gefunden: "SetValue()"
Die Frage ist wie ich es schaffe die Werte eines einzelnen Datensatzs durchs anklicken zu erhalten. Also wahrscheinlich als String oder Liste mit allen werten des Datensatzes.
Noch kurz die Quellcode-Ausschnitte:
Erstellen vom Frame und "ListCtrl"
Erstellen der "Columns":
Erstellen von "TextCtrl":
Die Methode welche das Event ausführt:
Ich vermute mal, dass es eine Methode (#Platzhalter#) gibt welche mir den angeklickten Datensatz zurückgibt. Aber ich bin bis jetzt noch nicht daruf gestoßen. Die Sachen die ich gefunden habe wie "GetItem()" brauchen zur übergabe eine ID des Datensatzes aber die habe ich ja nicht.
Danke schon mal im voraus.
habe mal wieder ein Problem bei dem ich Eure hilfe bräuchte.
Ich möchte ein Programm schreiben welches eine Datenbank in einer "ListCtrl" mit mehreren "Columns" (z.B. Titel, Regisseur) ausgibt. Und wenn ich eine von den Zeilen anklicke, sollen die einzelnen Werte im gleichen Fenster in dafür vorgesehen "TextCtrl"s angezeigt werden.
Bei der "ListCtrl" habe ich als Event "wx.EVT_LIST_ITEM_SELECTED".
Wie ich bei "TextCtrl" Werte einfügen kann habe ich auch schon heraus gefunden: "SetValue()"
Die Frage ist wie ich es schaffe die Werte eines einzelnen Datensatzs durchs anklicken zu erhalten. Also wahrscheinlich als String oder Liste mit allen werten des Datensatzes.
Noch kurz die Quellcode-Ausschnitte:
Erstellen vom Frame und "ListCtrl"
Code: Alles auswählen
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
pos=wx.Point(189, 35), size=wx.Size(1288, 1058),
style=wx.DEFAULT_FRAME_STYLE, title='Filmarchiv')
self.listCtrl_Film_Tabelle = wx.ListCtrl(id=wxID_FRAME1LISTCTRL_FILM_TABELLE,
name='listCtrl_Film_Tabelle', parent=self.panel1, pos=wx.Point(5,
30), size=wx.Size(1270, 602), style=wx.LC_REPORT)
self.listCtrl_Film_Tabelle.SetLabel('')
self.listCtrl_Film_Tabelle.Center(wx.HORIZONTAL)
self.listCtrl_Film_Tabelle.SetHelpText('')
self._init_coll_listCtrl_Film_Tabelle_Columns(self.listCtrl_Film_Tabelle)
self.listCtrl_Film_Tabelle.Bind(wx.EVT_LIST_ITEM_SELECTED,
self.OnListCtrl_Film_TabelleListItemSelected,
id=wxID_FRAME1LISTCTRL_FILM_TABELLE)
Code: Alles auswählen
def _init_coll_listCtrl_Film_Tabelle_Columns(self, parent):
# generated method, don't edit
parent.InsertColumn(col=0, format=wx.LIST_FORMAT_LEFT, heading='Titel',
width=-1)
Code: Alles auswählen
self.textCtrl_Titel = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL_TITEL,
name='textCtrl_Titel', parent=self.panel1, pos=wx.Point(90, 725),
size=wx.Size(400, 21), style=0, value="")
Code: Alles auswählen
def OnListCtrl_Film_TabelleListItemSelected(self, event):
j = self.listCtrl_Film_Tabelle.#Platzhalter#
self.textCtrl_Titel.SetValue(j)
Danke schon mal im voraus.