假设我有一个现有的enum X { A, B }并希望将它与 Qt 元数据一起使用,例如QMetaObject/ QMetaEnum。
QMetaObject meta = FsxSimConnectQtfier::staticMetaObject;
for (int i=0; i < meta.enumeratorCount(); ++i) {
QMetaEnum m = meta.enumerator(i);
}
如果我enum在一个Q_OBJECT类中定义我的,一切都很好,即我可以MyEnum 通过元数据系统检索。但是我怎样才能使X元数据系统可用呢?
class FsxSimConnectQtfier : public QObject
{
Q_OBJECT
Q_ENUMS(MyEnum)
Q_ENUMS(X) // not working
public:
explicit FsxSimConnectQtfier(QObject *parent = 0);
enum MyEnum { G1, G2 };
// how can I make enum X available for the metadata system
// I have tried typedef, but did not work
static const QString simConnectExceptionToString(const unsigned int id);
};
- 这是以下内容的后续:Qt: Meta.enumeratorCount() 没有元数据用于 Q_OBJECT 中的枚举,为什么?
- 动机:real
enum X包含很多异常代码,我想使用元数据系统来获取原始描述性文本,和这里差不多。原件enum不是(!)一个Q_OBJECT。