作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对枚举类、QVariants 和 QSettings 类有问题。我想将枚举类值存储在进入 QSettings 实例的 QVariant 中。所以,我的代码实际上是这样的:
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");
最佳答案
被屏蔽无符号整数的枚举似乎是一个问题,请参阅
Qt4 QSettings save enumeration value (for example Qt::CheckState)
那里和可能在这里的解决方案是将其转换为无符号。要检查返回枚举的 static_cast-result 是否有效,您可以添加 Foo_lowest
和 Foo_highest
枚举范围的开头和结尾的值。
关于c++11 - QSettings 中 QVariant 中的枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840660/
我是一名优秀的程序员,十分优秀!