带滑动枚举我能够访问Q_ENUMS性质和具体的,枚举的性格represenation,用下面的代码:QMetaEnum和强类型枚举
// in .h
class EnumClass : public QObject
{
Q_OBJECT
public:
enum MyEnumType { TypeA, TypeB };
Q_ENUMS(MyEnumType)
private:
MyEnumType m_type;
};
// in .cpp
m_type = TypeA;
...
const QMetaObject &mo = EnumClass::staticMetaObject;
int index = mo.indexOfEnumerator("MyEnumType");
QMetaEnum metaEnum = mo.enumerator(index);
QString enumString = metaEnum.valueToKey(m_type); // contains "TypeA"
如果我想使用C++ 11的功能强类型枚举像
enum class MyEnumType { TypeA, TypeB };
访问的元信息不工作了。我想,Qt并不认为它是一个枚举。
有没有解决方案来访问使用强类型枚举时枚举的字符表示?
哪个版本的Qt您使用的是? – SingerOfTheFall
@SingerOfTheFall:我们仍在使用qt4.8,但每当我们找到时间时就会切换到qt5。 – agentsmith
我并不完全确定,但这可能是因为你的Qt版本。另外,检查http://stackoverflow.com/questions/6513736/qt-support-for-c0x-enum-class – SingerOfTheFall