假设我有一个现有的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
通过元数据系统 https://stackoverflow.com/questions/11679057/qt-no-metadata-by-meta-enumeratorcount-for-enum-in-q-object-why。但我怎样才能使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 中的枚举提供元数据,为什么? https://stackoverflow.com/questions/11679057/qt-no-metadata-by-meta-enumeratorcount-for-enum-in-q-object-why
- 动机:真实
enum X
包含许多异常代码,我想使用元数据系统来获取原始描述文本,几乎就像here http://labs.qt.nokia.com/2008/10/09/coding-tip-pretty-printing-enum-values/。原本的enum
不是(!)一个Q_OBJECT
.
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)