J'ai enregistré un type d'énumération "ClefType" dans mon fichier d'en-tête - cette énumération est enregistrée avec le système MetaObject à l'aide des macros Q_DECLARE_METATYPE et Q_ENUMS. qRegisterMetaType est également appelé dans le constructeur de la classe.Accéder à une énumération stockée dans un QVariant
Cela me permet d'utiliser ce type dans un Q_PROPERTY, tout cela fonctionne très bien. Cependant, plus tard, je dois pouvoir obtenir la Q_PROPERTY de ce type enum, étant donné l'objet - sous une forme qui convient à la sérialisation.
Idéalement, il serait utile de stocker la valeur entière pour ce membre enum, parce que je ne veux pas que ce soit spécifique au type de ENUM qui est utilisé - finalement je veux avoir plusieurs énumérations différentes. semblent énumérations personnalisés ne pas être directement « coulable » à une valeur entière -
// This is inside a loop over all the properties on a given object
QMetaProperty property = metaObject->property(propertyId);
QString propertyName = propertyMeta.name();
QVariant variantValue = propertyMeta.read(serializeObject);
// If, internally, this QVariant is of type 'ClefType',
// how do I pull out the integer value for this enum?
Malheureusement variantValue.toInt();
ne fonctionne pas.
Merci à l'avance,
Henry
Cela fonctionne très bien - merci beaucoup pour votre réponse en profondeur! Très appréciée –