帶滑動枚舉我能夠訪問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