Qt的FY现有枚举使用Qt的元数据使用(Qt-fy existing enum to use wit

2019-09-20 08:07发布

假设我有一个现有的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. 动机:真正的enum X包含了许多异常代码,我想用元数据系统来获取原始的描述性文字,几乎是在这里 。 原来enum是不是(!)的Q_OBJECT
文章来源: Qt-fy existing enum to use with Qt metadata