QComboBox mit ID?
QComboBox mit ID?
Hallo!
Weis jemand wie man eine ID für jeden Eintrag in der ComboBox ablegt und wieder abfragt?
Mit "insertItem" wird ja nur der sichtbare Text eingefügt.
Brauche in meinem Fall aber zusätzlich die ID von jedem Eintrag. Vorzugsweise Unsichtbar.
Danke...
Weis jemand wie man eine ID für jeden Eintrag in der ComboBox ablegt und wieder abfragt?
Mit "insertItem" wird ja nur der sichtbare Text eingefügt.
Brauche in meinem Fall aber zusätzlich die ID von jedem Eintrag. Vorzugsweise Unsichtbar.
Danke...
-
- Beiträge: 300
- Registriert: 3. November 2004 16:15
- Wohnort: Berlin
ich würde zwar auch ein model empfehlen, aber versuch es doch mal mit
wobei irgendEinObject ja auch von der Klasse Long sein kann.
Gruß Arne
Code: Alles auswählen
combobox.setItemData(index,irgendEinObject);
Gruß Arne
-
- Beiträge: 186
- Registriert: 11. August 2005 08:21
Ich hol das noch mal hoch, weil ich auch ne simple Lösung suche:ArneStocker hat geschrieben:...wobei irgendEinObject ja auch von der Klasse Long sein kann.Code: Alles auswählen
combobox.setItemData(index,irgendEinObject);
Ich hab ne ComboBox mit den Einträgen:
Maximal
Minimal
Durchschnitt
Nun muss ich die Auswahl auswerten und im Programm je nach Auswahl einen QString weitergeben.
Maximal -> CAL_MAX
Minimal -> CAL_MIN
Durchschnitt -> CAL_AVERAGE
Ich könnte also mit setItemData() diese Strings an den entsprechenden Index kleben und später auslesen? Kann ich das auch schon in den Properties des Designers?
Martin
-
- Beiträge: 300
- Registriert: 3. November 2004 16:15
- Wohnort: Berlin
-
- Beiträge: 186
- Registriert: 11. August 2005 08:21
Moin,
ich komme aus der QT 3 Welt und programmiere auch jetzt noch beruflich mit der Version 3. Bisher hatte ich noch nicht die Ruhe mich in das Model/View Konzept einzulesen. Daher im Moment der für mich simplere Weg.
Du hast sicher recht. Und irgendwann werde ich mich damit beschäftigen. Wenn du allerdings die Muse hast mir in ein paar Zeilen zu erklären, wie ich dieses Model in meinem Fall nutzen kann, wäre das ja ein Anfang für mich.
ich komme aus der QT 3 Welt und programmiere auch jetzt noch beruflich mit der Version 3. Bisher hatte ich noch nicht die Ruhe mich in das Model/View Konzept einzulesen. Daher im Moment der für mich simplere Weg.
Du hast sicher recht. Und irgendwann werde ich mich damit beschäftigen. Wenn du allerdings die Muse hast mir in ein paar Zeilen zu erklären, wie ich dieses Model in meinem Fall nutzen kann, wäre das ja ein Anfang für mich.
Martin
-
- Beiträge: 300
- Registriert: 3. November 2004 16:15
- Wohnort: Berlin
(die Frage ist eher allgemein Qt spezifisch als Qt Jambi)
Ich würde auch gerne analog zu QButtonGroup IDs an die Einträge von der combobox heften.
Leider kann ich anhand der Doku von QComboBox zwar erkennen das man einen Index vergeben kann (ist das sowas wie eine ID?)
aber ich sehe nicht wie ich den Index wieder abfragen kann.
Die Hinweise in diesem Thread zu einem Model helfen mir leider ohne irgentein Code Beispiel nicht weiter. Und was QStringListModel mir dabei helfen könnte sehe ich auch nicht, denn es liefert ebenfalls keine ID zurück.
Ich würde auch gerne analog zu QButtonGroup IDs an die Einträge von der combobox heften.
Leider kann ich anhand der Doku von QComboBox zwar erkennen das man einen Index vergeben kann (ist das sowas wie eine ID?)
Code: Alles auswählen
void QComboBox::setItemData ( int index, const QVariant & value, int role = Qt::UserRole )
Die Hinweise in diesem Thread zu einem Model helfen mir leider ohne irgentein Code Beispiel nicht weiter. Und was QStringListModel mir dabei helfen könnte sehe ich auch nicht, denn es liefert ebenfalls keine ID zurück.
-
- Beiträge: 300
- Registriert: 3. November 2004 16:15
- Wohnort: Berlin
Code: Alles auswählen
QComboBox combobox = new QComboBox();
...
// setzen
combobox.setItemData(index,new QVarian(..irendwas ...))
...
// lesen
QVariant data = combobox.getItemData(index);
Code: Alles auswählen
QVariant data = combobox.getItemData(combobox.currentIndex());
Gruß Arne
Zuletzt geändert von ArneStocker am 27. März 2009 11:28, insgesamt 1-mal geändert.
-
- Beiträge: 300
- Registriert: 3. November 2004 16:15
- Wohnort: Berlin
QString gibt es in QtJambi nicht, nimm stattdessen ein String objekt (auch "hallo" ist ein Stringobjekt). Es geht halt auch ein Long oder Integer oder jedes andere von Object abgeleitete Objekt. Um bei mehreren Objekten rauszufinden, was sich hinter dem Eintrag versteckt kannst Du prüfen :
Gruß Arne
Code: Alles auswählen
Object data = combobox.getItemData(index);
if (data instanceof EineKlasse) {
EineKlasse objekt = (EineKlasse) data;
...
}