首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QFlags和QVariant

QFlags和QVariant
EN

Stack Overflow用户
提问于 2016-04-10 16:41:07
回答 1查看 1.2K关注 0票数 1

我要做的就是简单地将QFlags存储在QVariant中。

旗帜的定义:

代码语言:javascript
复制
class EnumObject : public QObject
{
    Q_OBJECT
public:
    enum DemoFlag {
        SomeFlag0 = 0x00,
        SomeFlag1 = 0x01,
        SomeFlag2 = 0x02
    };
    Q_DECLARE_FLAGS(DemoFlags, DemoFlag)
    Q_FLAG(DemoFlags)
};

现在,我所做的就是使用QVariant::fromValue函数构造一个q变量:

代码语言:javascript
复制
QVariant var = QVariant::fromValue<EnumObject::DemoFlags>(EnumObject::SomeFlag2);
qDebug() << var;

调试输出显示:

代码语言:javascript
复制
QVariant(EnumObject::DemoFlags, )

因此,无论出于什么原因,QVariant似乎无法存储这些标志?它确实识别类型,但似乎无法存储该值。我错过了什么吗?如果我注册了一个枚举,一切都很好。

注意:--我确实知道,我可以通过将其转换到一个交织器并返回来存储这个值,但这对我来说是不可能的,因为QVariant创建是一个通用方法的一部分。

EN

回答 1

Stack Overflow用户

发布于 2016-07-06 10:10:37

实际上它节省了。但是qDebug()没有显示值。如果从QVariant中提取值,则可以看出:

代码语言:javascript
复制
EnumObject::DemoFlags val = var.value<EnumObject::DemoFlags>();

qDebug() << val;

给予:

代码语言:javascript
复制
QFlags<EnumObject::DemoFlags>(SomeFlag2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36532527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档