Seite 1 von 1

Selektierte Einträge einer wx.ListCtrl ausgeben

Verfasst: Freitag 7. August 2009, 07:59
von Mawilo
Hallo,

in der Doku zu wx.ListCtrl habe ich nichts gefunden, um alle selektierten Einträge einer ListCtrl auszugeben (so etwas in der Art von wx.ListCtrl.GetSelections() oder so). Für eine ListBox gibt es so etwas.

Was ist der einfachste Weg, alle selektierten Einträge einer ListCtrl auszugeben? Habe ich da etwas übersehen, oder muss man sich da etwas selber basteln?

Grüße
Mawilo

Re: Selektierte Einträge einer wx.ListCtrl ausgeben

Verfasst: Freitag 7. August 2009, 11:17
von Francesco
Ich habe das einmal so gemacht:

(es ist grundsätzlich etwas umständlich)

Code: Alles auswählen

            index = -1
            for i in range (self.GetItemCount()):
                index = self.GetNextItem(index, wx.LIST_NEXT_ALL, wx.LIST_STATE_SELECTED)
                if index == -1:
                    break
                else:
                    item = self.GetItem(index, 1)  #the column
                    path = item.GetText()
                    #do whatever you want with it
Nachtrag:
Im wxPython Demo ist auch so etwas drin:
demo => Listctrl demo => selektiere ein paar => rechtsclick auf ein selektiertes item => iterate selected => im logwindow werden die selektierten aufgelistet.

Verfasst: Freitag 7. August 2009, 11:51
von Mawilo
Danke für den Hinweis mit der Demo. Das hatte ich gar nicht gesehen. Ich habe es jetzt so gelöst:

Code: Alles auswählen

index = ListCtrl.GetFirstSelected()
while index != -1:
    # mach was mit dem selektierten Item ...
    # z.B. ListCtrl.GetItemText(index) oder ListCtrl.GetItemData(index)
    # an eine Funktion übergeben
    index = ListCtrl.GetNextSelected(index)
Grüße
Mawilo