Ich arbeite gerade an einem Programm und bin nun dabei eine wx.ListCtrl einzubauen. Leider funktioniert dies noch nocht so ganz :K
Irgendwie wird nur die erste Spalte mit dem letzten Eintrag gefüllt (siehe Bild...)

Hier mein Code:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx, os
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.db = Database()
self.list_vok = wx.ListCtrl(self.notebook_vokabeln_v, -1, style=wx.LC_LIST | wx.LC_REPORT | wx.LC_SORT_ASCENDING | wx.SUNKEN_BORDER | wx.NO_BORDER)
self.list_vok.InsertColumn(0, "Frage")
self.list_vok.InsertColumn(1, "Antwort")
self.list_vok.InsertColumn(2, "Tipp")
#[...]
def vok_edit_anzeigen(self, event):
sel = self.wahl_kat.GetSelection()
voks = self.db.get_vok_by_lek(sel)
self.list_vok.DeleteAllItems()
print(voks)
for i in range(len(voks)):
frage = voks[i][0]
antwort = voks[i][1]
tipp = voks[i][2]
num_items = self.list_vok.GetItemCount()
self.list_vok.InsertStringItem(num_items, frage)
self.list_vok.SetStringItem(num_items, 1, antwort)
self.list_vok.SetStringItem(num_items, 2, tipp)
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame = MyFrame(None, -1, "")
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()

Viiieeeelen Dank schoneinmal im Vorraus!
Nachtrag: Die Variablen "frage", "antwort" und "tipp" führen beide Strings!