小编mis*_*ita的帖子

有没有办法使用QMetaEnum和Q_ENUMS属于非Q_OBJECT或Q_GADGET类?

例如,我有以下课程:

namespace someName
{
    class someClass
    {
        Q_ENUMS(ESomeEnum)

        public:
        enum ESomeEnum {ENUM_A, ENUM_B, ENUM_C};

        // ... some other things ..
    }
}

Q_DECLARE_METATYPE(someName::someClass)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用QMetaEnum :: valueToKey或QMetaEnum :: keyToValue?

尝试了这个答案中的方法,但得到以下错误:

error: static assertion failed: QMetaEnum::fromType only works with enums declared as Q_ENUM or Q_FLAG
#define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
Run Code Online (Sandbox Code Playgroud)

我可以使用X-Macros来获得我想要的输出,但是在Qt中学习更多技巧也会很好.

c++ qt qmetaobject

7
推荐指数
2
解决办法
3318
查看次数

标签 统计

c++ ×1

qmetaobject ×1

qt ×1