QComboBox

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Peter1977
User
Beiträge: 90
Registriert: Mittwoch 4. September 2013, 14:59

Hallo,

habe bei meinen Projekt verschiedene Comboboxen im Einsatz.

diese werden aus einer Datenbank befüllt dieses funktioniert auch
hier ein Beispiel:

Code: Alles auswählen

SQL_Statement="SELECT id_bezeichnung, bezeichnung FROM bh_bezeichnung ORDER BY bezeichnung;"
Result=DBConnect(SQL_Statement)
for Row in Result:
    self.combo_Bezeichnung.addItem(Row[1])
aber wie kann ich jetzt nicht sichtbar die ID eintragen und wieder auslesen?
Sirius3
User
Beiträge: 18229
Registriert: Sonntag 21. Oktober 2012, 17:20

Laut Docu hat »addItem« einen zusätzlichen Parameter für diesen Zweck:

Code: Alles auswählen

void	addItem ( const QString & text, const QVariant & userData = QVariant() );
Peter1977
User
Beiträge: 90
Registriert: Mittwoch 4. September 2013, 14:59

Die ID wird in ein PyQt Combobox folgendermassen eingefügt

Code: Alles auswählen

SQL_Statement="SELECT id_bezeichnung, bezeichnung FROM bezeichnung ORDER BY bezeichnung;"
Result=DBConnect(SQL_Statement) # DBConnect eigene Funktion um sich mit DB zu verbinden und abzufragen

# Combobox füllen
for Row in Result:
    self.combo_Bezeichnung.addItem(Row[1],Row[0]) # Row[1]=Spalte Bezeichnung; Row[0]=Spalte ID_Bezeichnung
zum auslesen der gesetzten ID

Code: Alles auswählen

ID=self.combo_Bezeichnung.itemData(self.combo_Bezeichnung.currentIndex())
ab hier kann man dann mit der id weiterarbeiten.

mfg Peter
Antworten