Der Hintergrund ist folgender: Ich befülle eine QComboBox mit meinem enum, so dass als Text ein Alias für den enum-Wert angezeigt wird, und als itemData möchte ich den enum-Wert hinterlegen. Später möchte ich in der QComboBox wieder nach meinem enum-Wert suchen (mit findData(...)), um die QComboBox auf den entsprechenden Index zu setzen, bei dem der enum-Wert vorliegt.
Mein Code sieht folgendermaßen aus:
Code: Alles auswählen
enum MyEnum
{
EnumNone,
EnumValue1,
EnumValue2
}
...
Q_DECLARE_METATYPE(MyClass::MyEnum)
...
QVariant var = QVariant::fromValue(MyClass::EnumValue2);
...
// Inhalt anzeigen mit qDebug ...
qDebug() << var;
// ... liefert folgende Ausgabe
// QVariant(MyClass::MyEnum, )
Der QVariant scheint also auf dem korrekten Typ zu arbeiten, aber leer zu sein. Versteht ihr das?
(Meine eigentliche Aufgabe mit der QComboBox kann ich wohl lösen, indem ich den enum als Integer-Wert in den QVariant verpacke, aber mich würde sehr interessieren, weshalb das Verpacken als enum-Wert anscheinend nicht klappt.)