QComboBox mit eigener Klasse füllen.
Verfasst: 8. Oktober 2010 13:27
Hallo zusammen,
ich bin neu in QT, kenne mich aber recht gut mit andern Frameworks wie z.B. Flex oder .NET aus.
Zum "üben" habe ich ein 08/15 Widget gebaut das folgendes tut / tun soll :
- eine Combobox
- ein Button zum Hinzufügen eines Datensatzes (dazu gleich mehr)
- ein Label zum Anzeigen des in der Combobox ausgewählten Datensatzes.
Ein Datensatz besteht aus der total kreativen eigenen Klasse "Person" die über die Eigenschaften "Vorname", "Nachname" und "Alter" verfügt.
Ich zeige auf Buttondruck einen Dialog in dem ich eine neue Person anlege und übergebe die mittles eines Signals an das Widget.
Soweit so gut.
Was ich nun möchte ist, die ComboBox mit den Nachnamen (z.B.) zu füllen und bei Auswahl eines Eintrags ALLE Daten der entsprechenden Person im Label anzuzeigen.
Anscheinend kann ich aber die Einträge der Combobox NICHT direkt mit den Objekten der Klasse Person verknüpfen sondern nur mit einzelnen Strings.
Also führe ich eine QList<Person> in der die wirklichen Objekte stehen und kann mit den ComboBox - Indizes die richtigen String-Objekt Beziehungen herstellen.
Was mir nun gar nicht gefällt, ist allerdings die Tatsache, dass wenn ich die ComboBox alphabetisch sortiere (was ja per Flag möglich ist), ich die andere Liste manuell nachsortieren muss. Also bei jedem Hinzufügen.
Das finde ich sehr umständlich und unflexibel, und ich frage mich warum es keine komfortablere CollectionKlasse gibt, bzw. warum ich nicht direkt Daten an die ComboBox binden kann.
Darüberhinaus...natürlich habe ich versucht die QList manuell zu sortieren mit qSort und einer eigenen LessThan Funktion. Da habe ich mich aber irgendwie zu blöd angestellt.
Für Ideen, Hinweise, Tips wäre ich sehr dankbar.
Gruß
Chris.
ich bin neu in QT, kenne mich aber recht gut mit andern Frameworks wie z.B. Flex oder .NET aus.
Zum "üben" habe ich ein 08/15 Widget gebaut das folgendes tut / tun soll :
- eine Combobox
- ein Button zum Hinzufügen eines Datensatzes (dazu gleich mehr)
- ein Label zum Anzeigen des in der Combobox ausgewählten Datensatzes.
Ein Datensatz besteht aus der total kreativen eigenen Klasse "Person" die über die Eigenschaften "Vorname", "Nachname" und "Alter" verfügt.
Ich zeige auf Buttondruck einen Dialog in dem ich eine neue Person anlege und übergebe die mittles eines Signals an das Widget.
Soweit so gut.
Was ich nun möchte ist, die ComboBox mit den Nachnamen (z.B.) zu füllen und bei Auswahl eines Eintrags ALLE Daten der entsprechenden Person im Label anzuzeigen.
Anscheinend kann ich aber die Einträge der Combobox NICHT direkt mit den Objekten der Klasse Person verknüpfen sondern nur mit einzelnen Strings.
Also führe ich eine QList<Person> in der die wirklichen Objekte stehen und kann mit den ComboBox - Indizes die richtigen String-Objekt Beziehungen herstellen.
Was mir nun gar nicht gefällt, ist allerdings die Tatsache, dass wenn ich die ComboBox alphabetisch sortiere (was ja per Flag möglich ist), ich die andere Liste manuell nachsortieren muss. Also bei jedem Hinzufügen.
Das finde ich sehr umständlich und unflexibel, und ich frage mich warum es keine komfortablere CollectionKlasse gibt, bzw. warum ich nicht direkt Daten an die ComboBox binden kann.
Darüberhinaus...natürlich habe ich versucht die QList manuell zu sortieren mit qSort und einer eigenen LessThan Funktion. Da habe ich mich aber irgendwie zu blöd angestellt.
Für Ideen, Hinweise, Tips wäre ich sehr dankbar.
Gruß
Chris.