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
QCombobox mit Gruppen
-
- Beiträge: 15
- Registriert: 3. Februar 2008 15:40
erstmal danke für deine antwortupsala hat geschrieben:Das mit dem Model ist keine schlechte Idee, event. reicht auch schon ein QStandardItemModel. Bei der Darstellung wird dir ein QItemDelegate helfen...
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 ^^
-
- Beiträge: 15
- Registriert: 3. Februar 2008 15:40
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:
laut der doku sollte das denk ich mal so funktionieren:
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
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);
Würde dieser aufbau funktionieren? (einmal für die metadaten)You can store application-specific data in an item by calling setData().
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