Jetzt muss ich hier doch nochmal nachhaken: Eine Lösung per QDataWidgetMapper (wie in meinen Links beschrieben) hätte wohl funktioniert, ich hätte aber lieber eine Lösung ohne direktes Mapping mit der Datenbank.
RHBaum hat geschrieben:Was Christian beschreibt, ist die einfachste Lösung. QComboBox bietet ein "abgespecktes" Interface wo man zu den "Display" Daten noch ein Satz User Daten (Variant) hinterlegen und anfragen kann.
Das ist mir soweit klar: Ich kann also in der QComboBox sowohl mein anzuzeigendes Land, also auch die ID abspeichern, die sich dahinter verbirgt. Aber jetzt hätte ich noch eine Frage zum Design: Mein Ansatz wäre eine Klasse CPerson gewesen, die vereinfacht dargestellt so aussieht:
Code: Alles auswählen
class CPerson
{
...
private:
QString name
QString vorname
int/QString land // PROBLEM: ID merken oder String?
}
Zum Programmstart hätte ich die Datenbank ausgelesen, für jede Zeile ein CPerson angelegt und mir das in einer QList<CPerson*> gemerkt. Zum Befüllen meiner QTableView wäre ich die QMap durchlaufen und hätte QStandartItem* erzeugt.
Ein Problem hab ich jetzt natürlich wieder beim Land, weil ich ja für meine QComboBox die ID und den String des Landes bräuchte.
Ist das denn generell ein unbrauchbarer Ansatz? Oder hab ich nur etwas übersehen? Wie würdet ihr das machen?
Vielen Dank schonmal!