Yapmaya çalıştığım şey, QVariant
'da QFlags
depolamaktır.QFlags ve QVariant
Bayraklar tanımı:
QVariant var = QVariant::fromValue<EnumObject::DemoFlags>(EnumObject::SomeFlag2);
qDebug() << var;
ayıklama çıkışı gösterir:
class EnumObject : public QObject
{
Q_OBJECT
public:
enum DemoFlag {
SomeFlag0 = 0x00,
SomeFlag1 = 0x01,
SomeFlag2 = 0x02
};
Q_DECLARE_FLAGS(DemoFlags, DemoFlag)
Q_FLAG(DemoFlags)
};
Şimdi tek bütün QVariant::fromValue
işlevini kullanarak bir qvariant oluşturmaktır Yani
QVariant(EnumObject::DemoFlags,)
, Neden olursa olsun QVariant bayrakları saklayamıyor gibi görünüyor? Türü tanır, ancak değeri depolayamıyor gibi görünüyor. Bir şey mi kaçırdım? Bunun yerine bir enum kaydedersem her şey iyi çalışır.
Not: Değeri bir ara ve geri göndererek depolayabildiğimi biliyorum, ancak bu benim için mümkün değil, çünkü QVariant oluşturma genel bir yöntemin parçasıdır.