QCombobox mit Gruppen

Alles rund um die Programmierung mit Qt
Antworten
LordBernhard
Beiträge: 15
Registriert: 3. Februar 2008 15:40

QCombobox mit Gruppen

Beitrag von LordBernhard »

Hi!

Ich hätte da ne Frage zur QComboBox:

Ist es möglich gruppen zu haben? wie zum beispiel in diesem mfc beispiel hier:
http://www.codeproject.com/KB/combobox/customcombo.aspx

wenn nicht: wie würdet ihr das am besten angehen?

ansonsten hätte ich noch eine frage: jeder eintrag in der combobox bräuchte bei mir auch noch zusätzliche informationen (z.B. übersetzungen).. wie würde man so etwas am besten einbauen?
wäre mir dabei mit einem setModel und einer Subclass von QAbstractItemModel geholfen?

Ich hoffe ihr könnt bei diesem Problem ein bisschen licht ins dunkel bringen.. und bitte nciht schlagen, wenn das ein ganz triviales prob is :-)
(und ja ich habe bereits die suchfunktion benutzt und mehrere foren durchforstet)

Mfg, Bernhard
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Das mit dem Model ist keine schlechte Idee, event. reicht auch schon ein QStandardItemModel. Bei der Darstellung wird dir ein QItemDelegate helfen...
LordBernhard
Beiträge: 15
Registriert: 3. Februar 2008 15:40

Beitrag von LordBernhard »

upsala hat geschrieben:Das mit dem Model ist keine schlechte Idee, event. reicht auch schon ein QStandardItemModel. Bei der Darstellung wird dir ein QItemDelegate helfen...
erstmal danke für deine antwort :-)

ich habe bisher leider noch nichts mit delegates gemacht, daher kann ich mir nicht vorstellen, wie mir ein delegate helfen soll. Meinst du die Kategorietrenner könnte man damit anzeigen?

sobald ich zeit habe werde ich mir das ganze einmal zu gemüte führen

nochmals danke für deine antwort.. jetzt weis ich, dass ich wenigstens auf der richtigen spur bin ^^
LordBernhard
Beiträge: 15
Registriert: 3. Februar 2008 15:40

Beitrag von LordBernhard »

ok.. jetzt bin ich verwirrt ^^

Ich habe derzeit leider keinen compiler für Qt zur hand, daher frage ich einmal hier, ob so ein ansatz richtig wäre:

Code: Alles auswählen

QMap map<QString, QString>();
map.insert("en", "That's a translated text");

QStandardItemModel model;
QStandardItem *item = new QStandardItem(QString("Das ist der Standardtext"));
item->setData(map);
model.setItem(0, 0, item);

QComboBox *combo = new QComboBox();
combo->setModel(model);
laut der doku sollte das denk ich mal so funktionieren:
You can store application-specific data in an item by calling setData().
Würde dieser aufbau funktionieren? (einmal für die metadaten)
Oder meint ihr ich sollte von QStandardItem eine SubClass erstellen, und da drinnen eine eigene Map machen.

Könnte ich dann einfach wenn das ChangeEvent auftritt (beim neu übersetzen der oberfläche) einfach alle items des models durchgehen, und den entsprechenden text aus der map dem item als text setzen?

Das delegate könnte ich dann hier einfach "dazupappen"?

Ich hoffe ich beschere mit meinen wilden anbahnungen hier keinem albträume ^^

Mfg, Bernhard
Antworten