ListCtrl Verbindung Rückgabe mit Ursprungsdaten
Verfasst: Mittwoch 25. Oktober 2006, 19:33
Hi,
habe ein Problem mit folgendem Code:
Wollte eigentlich nach der Auswahl eines ListItems die Ursprungsdaten weiterverarbeiten. Die Ursprungsdaten kommen aus einer SQL-Abfrage.
Bei Ausführung des obigen Codes werden die Items aber immer in umgekehrter Reihenfolge eingefügt, und die Verbindung liefert z.B. statt dem 1. Wert den letzten Wert.
Das Problem liegt in Codezeile 21, wenn man das 2. Argument nicht leer lässt sondern einen String einfügt, wir die Reihenfolge richtig angezeigt.
Fragt sich nur ob das so richtig ist, und ob es nicht eine bessere Möglichkeit gibt?
Der Code ist wahrscheinlich total primitiv, aber ist halt erst der Anfang und ein Versuch aus Beispielen ans Ziel zu kommen. Für Verbesserungen bin ich immer offen.
Gruß Christian
habe ein Problem mit folgendem Code:
Code: Alles auswählen
#!/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
import sys
class AuswahlDialog(wx.Dialog):
def __init__(self, parent, spalten, daten):
self.daten = daten
wx.Dialog.__init__(self,parent,-1)
self.Text = wx.StaticText(self,-1,"Auswahl",wx.Point(10,10))
self.list=wx.ListCtrl(self,-1,wx.Point(10,50),wx.Size(200,100),wx.LC_REPORT
| wx.BORDER_NONE
| wx.LC_EDIT_LABELS
| wx.LC_SORT_ASCENDING )
for i in range(len(spalten)):
self.list.InsertColumn(i,spalten[i])
for i in range(len(daten)):
index = self.list.InsertStringItem(sys.maxint,"")
self.list.SetStringItem(index, 0, str(daten[i][0]))
self.list.SetStringItem(index, 1, daten[i][1])
self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated, self.list)
self.ShowModal()
def OnItemActivated(self,event):
self.currentItem = event.m_itemIndex
self.artikel = self.daten[self.currentItem]
self.Fit()
def GetReturn(self):
return self.artikel
def main():
app = wx.PySimpleApp()
daten = ((1,'Haus'),(2,'Garten'),(3,'Baum'))
spalten = ('Nummer','Teil')
diag = AuswahlDialog(None,spalten,daten)
print diag.GetReturn()
app.MainLoop()
if __name__ == "__main__":
main()
Bei Ausführung des obigen Codes werden die Items aber immer in umgekehrter Reihenfolge eingefügt, und die Verbindung liefert z.B. statt dem 1. Wert den letzten Wert.
Das Problem liegt in Codezeile 21, wenn man das 2. Argument nicht leer lässt sondern einen String einfügt, wir die Reihenfolge richtig angezeigt.
Fragt sich nur ob das so richtig ist, und ob es nicht eine bessere Möglichkeit gibt?
Der Code ist wahrscheinlich total primitiv, aber ist halt erst der Anfang und ein Versuch aus Beispielen ans Ziel zu kommen. Für Verbesserungen bin ich immer offen.
Gruß Christian