例如,我有以下课程:
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?
尝试了这个答案中的方法,但得到以下错误:
Run Code Online (Sandbox Code Playgroud)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)
我可以使用X-Macros来获得我想要的输出,但是在Qt中学习更多技巧也会很好.