Seite 1 von 1

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

Verfasst: 22. Januar 2009 10:25
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

Verfasst: 22. Januar 2009 10:43
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

Verfasst: 22. Januar 2009 10:48
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

Verfasst: 22. Januar 2009 11:06
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

Verfasst: 22. Januar 2009 11:30
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.