Seite 1 von 1

wx.ListCtrl - Einträge bekommen

Verfasst: Montag 9. April 2007, 18:35
von sprudel
Hallo.
Ich habe ein Wx.ListCtrl.

Wie bekomme ich jetzt alle Einträge in irgendeiner Form von Sequenz? Ich hab leider keine GetValues()-Methode oder etwas ähnliches gefunden. Wäre froh wenn mir jemand helfen könnte.

Gruß sprudel

Verfasst: Dienstag 10. April 2007, 09:10
von hmueller
Hallo sprudel,

Ich habe das bei mir so gelöst:

Code: Alles auswählen

list = []
        index = listctrl.GetNextItem(-1)
        while index != -1:
            list.append(listctrl.GetItemText(index))
            index = listctrl.GetNextItem(index)
Hoffe das hilft,

Hannes

Verfasst: Dienstag 10. April 2007, 09:17
von sprudel
Hallo. Dieser Code ist im Prinzip schonmal sehr gut. Jetzt hab ich nur noch das Problem: Wie bekomm ich die anderen Spalten auch noch?

Ich hätte es am besten gerne so, dass für jede zeile eine Sequenz entsteht, und jeder dieser Einträge den Text eines Feldes enthält. Von Links nach rechts. Ist das denn auch möglich?

Verfasst: Dienstag 10. April 2007, 09:23
von hmueller
Naja, du kannst über den index das Ding zeilenweise durchgehen, und dann eine Datenstruktur aufbauen, die deinen Anforderungen genügt.

Mehr als diesen Iterator kann ich Dir leider nicht bieten...

Verfasst: Dienstag 10. April 2007, 09:24
von sprudel
Wie kann ich überhaupt in weitere Felder schreiben?

Verfasst: Dienstag 10. April 2007, 09:36
von Francesco
sprudel hat geschrieben:Wie kann ich überhaupt in weitere Felder schreiben?
Das ListCtrl ist so eine Sache für sich, nicht gerade, wie soll ich sagen, intuitiv.

Um weitere hinzuzufügen (hier in der ersten reihe):

Code: Alles auswählen

l.InsertStringItem(0, "datacol0") # index 0 = 1. reihe
l.SetStringItem(0,1, "datacol1")#index 0, spalte 1

Verfasst: Dienstag 10. April 2007, 09:41
von sprudel
und wie soll ich sie dann wieder auslesen?
sagen wir, eine sequenz pro zeile :P

Und wie sortiere ich dieses verfluche ListCtrl eigentlich? Will die erste Spalte Aufsteigend sortiert haben. :roll: . Und ich dachte immer in den WxWidgets wäre alles so intuitiv ;-)

Verfasst: Dienstag 10. April 2007, 10:04
von Francesco
sprudel hat geschrieben:und wie soll ich sie dann wieder auslesen?
sagen wir, eine sequenz pro zeile :P

Und wie sortiere ich dieses verfluche ListCtrl eigentlich? Will die erste Spalte Aufsteigend sortiert haben. :roll: . Und ich dachte immer in den WxWidgets wäre alles so intuitiv ;-)
Hast du dir das ListCtrl Demo angesehen?
Da ist glaube ich alles drin, was du suchst.

Verfasst: Dienstag 10. April 2007, 11:25
von sprudel
Hi,

Irgendwie kapier ich das nicht so recht. Ich schaff es immer nur die linke Spalte zu bekommen.

Verfasst: Dienstag 10. April 2007, 11:35
von Francesco
sprudel hat geschrieben:Hi,

Irgendwie kapier ich das nicht so recht. Ich schaff es immer nur die linke Spalte zu bekommen.
in einem drPython Plugin habe ich dafür eine Funktion:

Code: Alles auswählen

def getColumnText(self, index, col):
    item = self.GetItem(index, col)
    return item.GetText()