Problem mit PyQt4: QListWidget

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
bluescreen
User
Beiträge: 1
Registriert: Donnerstag 19. Juli 2007, 10:43

Donnerstag 19. Juli 2007, 11:12

Hallo erstmal,

momentan bin ich dabei mir Python + PyQt4 beizubringen. Um mir ein Ziel zu stecken habe ich mir vorgenommen ein Mitgliederverwaltungssystem für meinen Verein zu schreiben.

Bisher klappt das eigentlich sehr gut aber jetzt hab ich ein Problem:

Mein GUI habe ich mit QtDesigner erstellt und mit pyuic4 kompiliert.
Ich habe ein ListWidget(Item based) integriert, wo ich dann alle Vor- und Nachnamen der Mitglieder aus der Datenbank(sqlite3) hinzufüge. Wenn ich nun in der Liste auf einen Namen klicke werden die entsprechenden Details zur Person angezeigt. Das klappt wunderbar wenn ich mittels currentRow() die jeweilige Zeile auslese und dann in der Datenbank den entsprechenden Datensatz nachschlage. Nun habe ich aber Filter eingebaut die z.B. Nach Aktiv und Passiv filtern. Jetzt komm ich zunehmend in Probleme das mittels currentRow() aus der Datenbank zu bekommen.
Ich finde meinen Ansatz nicht für den Besten da er eigentlich nur eine Notlösung war. Eigentlich hatte ich vor den Inhalt der Zeilen auszulesen und dann mit den Werten(Vorname, Name) in der Datenbank nachzuschlagen.

Aber nun mein Problem...Ich bekomm den Inhalt nicht ausgelesen.

Mit

Code: Alles auswählen

self.ui.listWidget.currentItem()
klappt das nicht. Ich bekomme ja nur den Item aber nicht den Inhalt.

In der PyQt4 Reference habe ich dann noch das gefunden

Code: Alles auswählen

self.ui.listWidget.text()
aber hier sagt er mir, dass er "text()" nicht kennt. Das Problem liegt wahrscheinlich darin das "text()" nur bei QListWidgetItem gibt und ich sonstiges mit QListWidget bewerkstellige.

Kann mir vielleicht jemand sagen, wie ich den Inhalt der Zeilen bekomme?

Schon einmal vielen Dank!
fabi1511
User
Beiträge: 23
Registriert: Donnerstag 25. Juni 2009, 18:59

Sonntag 16. August 2009, 18:58

Die lösung ist eine mischung von beidem

Code: Alles auswählen

self.ui.listWidget.currentItem().text()
damit sqlite3 damit zurechtkommt musst du das ganze nurnoch in einen string umwandeln
lunar

Sonntag 16. August 2009, 23:05

PyQt4 hat übrigens auch fertige Modell-Klassen zum direkten Zugriff auf Datenbanken, Du musst das nicht selbst nochmal programmieren ;)
Antworten