例如,我有以下课程:
namespace someName
{
class someClass
{
Q_ENUMS(ESomeEnum)
public:
enum ESomeEnum {ENUM_A, ENUM_B, ENUM_C};
// ... some other things ..
}
}
Q_DECLARE_METATYPE(someName::someClass)
有没有办法使用 QMetaEnum::valueToKey 或 QMetaEnum::keyToValue ?
尝试了this answer中的方法,但出现以下错误:
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 中学习更多技巧也会很好。