3

假设我有一个现有的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);
};
  1. 这是以下内容的后续:Qt: Meta.enumeratorCount() 没有元数据用于 Q_OBJECT 中的枚举,为什么?
  2. 动机:realenum X包含很多异常代码,我想使用元数据系统来获取原始描述性文本,和这里差不多。原件enum不是(!)一个Q_OBJECT
4

0 回答 0