既存の があり、それを/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
クラス内で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);
};
- これは次のフォローアップです: Qt: Q_OBJECT の enum の meta.enumeratorCount() によるメタデータがありません。なぜですか?
- 動機: real
enum X
には多くの例外コードが含まれており、メタデータ システムを使用して元の説明テキストを取得したいと考えています。オリジナルenum
は(!)ではありませんQ_OBJECT
。