3

既存の があり、それを/enum X { A, B }などの Qt メタデータで使用したいとします。QMetaObjectQMetaEnum

QMetaObject meta = FsxSimConnectQtfier::staticMetaObject;
for (int i=0; i < meta.enumeratorCount(); ++i) {
    QMetaEnum m = meta.enumerator(i);
}

enumクラス内でmy を定義すれば、すべて問題ありません。つまり、メタデータ システムで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: Q_OBJECT の enum の meta.enumeratorCount() によるメタデータがありません。なぜですか?
  2. 動機: realenum Xには多くの例外コードが含まれており、メタデータ システムを使用して元の説明テキストを取得したいと考えています。オリジナルenumは(!)ではありませんQ_OBJECT
4

0 に答える 0