我有一个关于枚举类、QVariants和QSettings类的问题。我想要将枚举类的值存储在一个QVariant中,并将其放入一个QSettings实例中。因此,我的代码实际上看起来像这样:
在执行代码的这一点上,断言跳入并抱怨:
但这并没有帮助。也许你有其他的建议/解决方案,请告诉我。谢谢!
enum class Foo
{
Bar1, Bar2
}
Q_ENUMS(Foo)
Q_DECLARE_METATYPE(Foo)
...
Foo value = Bar2;
QSettings settings;
settings.setValue(QString("Foo"), QVariant::fromValue(value));
在执行代码的这一点上,断言跳入并抱怨:
ASSERT failure in QVariant::save: "Invalid type to save", file kernel\qvariant.cpp
在搜索互联网时,我发现该类缺少适当的<<和>>运算符。但对于枚举类来说这不是一个选项。我甚至尝试使用
qRegisterMetaType<Foo>("Foo");
但这并没有帮助。也许你有其他的建议/解决方案,请告诉我。谢谢!