[gelöst] QComboBox mit id und Text füllen (Qt 4.4.3)

Alles rund um die Programmierung mit Qt
Antworten
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

[gelöst] QComboBox mit id und Text füllen (Qt 4.4.3)

Beitrag von ms47 »

Hallo,

ich habe gerade angefangen mit der Qt-Programmierung.
Ich möchte nun eine ComboBox mit Werten füllen. Der Zugriff und die Werte ansich funktionieren ganz gut. Ich möchte allerding definierte Indexe zu dem jeweiligen Text verwenden:

Code: Alles auswählen

comboBox.insertItem( 1001, "1001");
comboBox.insertItem( 1002, "1002");
comboBox.insertItem( 1003, "1003");
Laut Dokumentation

Code: Alles auswählen

void QComboBox::insertItem ( int index, const QString & text, const QVariant & userData = QVariant() )
kann ich so den verwendeten Index setzen. Versuche ich jetzt allerdings den Index auszulesen

Code: Alles auswählen

comboBox.currentIndex()
bekomme ich einen Index beginnend von 0 und nicht der von mir angegeben.
Was mache ich verkehrt, bzw. was habe ich da falsch verstanden?

Vielen Dank im Voraus für jeden Tipp.

Gruß
Markus
Zuletzt geändert von ms47 am 22. Januar 2009 11:30, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.
aus der doku.

wenn ich deinen code richtig deute, willst du über den index gleich den wert (int) erhalten. das geht so dann leider nicht.

Dir bleibt nur übrig, den currentText() nach int zu konvertieren:
int QString::toInt ( bool * ok = 0, int base = 10 ) const

Alternativ wäre auch an die verwendung einer spinbox mit entsprechndem range zu denken.

grüße
franz
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

Beitrag von ms47 »

franzf hat geschrieben:
If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.
aus der doku.

wenn ich deinen code richtig deute, willst du über den index gleich den wert (int) erhalten. das geht so dann leider nicht.

Dir bleibt nur übrig, den currentText() nach int zu konvertieren:
int QString::toInt ( bool * ok = 0, int base = 10 ) const

Alternativ wäre auch an die verwendung einer spinbox mit entsprechndem range zu denken.

grüße
franz
Ach verdammt. Hab natürlich nicht alles gelesen :oops:
Aber danke dir für die schnelle Antwort.

Btw. wie kann ich eigentlich den Beitrag dann auf gelöst stellen?

Gruß
Markus
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Indem du deinen ersten Post nochmal editierst und im Titel irgendwo ne Notiz wie [gelöst] oder der gleichen unterbringst ;)

Grüße
Franz
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

Beitrag von ms47 »

franzf hat geschrieben:Indem du deinen ersten Post nochmal editierst und im Titel irgendwo ne Notiz wie [gelöst] oder der gleichen unterbringst ;)

Grüße
Franz
:) Aha, alles klar. Danke dir.
Antworten