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.