Seite 1 von 1

Enum aus QVariant auslesen

Verfasst: 20. Juni 2007 11:22
von mathies
Hallo,

habe ein enum deklariert und will das über die data() Funktion eines Models auslesen. Klappt alles bis auf die Konvertierung.

Code: Alles auswählen

typedef enum MyEnum
{
    hase,
    igel,
    fuchs
};
Dann lese ich einen QVariant aus und versuche Ihn folgendermaßen zu konvertieren:

Code: Alles auswählen

    QVariant qvariant = mTierListe->data(index,Qt::UserRole);
    MyEnum tier = qvariant.value<MyEnum>();
aber das klappt nicht, da er mit
Fehler 1 error C2039: 'qt_metatype_id': Ist kein Element von 'QMetaTypeId<T>' c:\programme\qt\src\corelib\kernel\qmetatype.h 168
was rummeckert. Auch die Versuche mein enum über

Q_DECLARE_METATYPE ( MyEnum );

bekannt zu machen scheitern, da es angeblich keinen Typspezifiierer gibt.

Gibt es ne Möglichkeit das gescheit hinzubekommen?

Grüßle,
Matthias

Verfasst: 20. Juni 2007 12:22
von upsala

Code: Alles auswählen

QVariant qvariant = mTierListe->data(index,Qt::UserRole);
MyEnum tier = value.toInt(); 

Verfasst: 20. Juni 2007 12:42
von mathies
Hallo,

habs bis jetzt auch über int gemacht, fand es nur etwas doof, dass er net einfach den "Typ" akzeptiert.

Danke trotzdem.

Grüßle,
Matthias