Q_ENUMとQ_ENUMSの違いは何ですか?質問する

Q_ENUMとQ_ENUMSの違いは何ですか?質問する

Q_ENUMおよびの使用例を複数見つけQ_ENUMS、 の定義を調べたところ、および その他の定義Q_ENUMが含まれていることがわかりました。Q_ENUMS

Q_PROPERTYQml/QtQuick、シグナル/スロット、QVariants、qDebug()出力で列挙型を使用する場合、どれを記述すればよいかわかりません。

Q_ENUMは を使用して定義されているので、より良いもののように思えますQ_ENUMSが、ここでは推測しているだけです。

違いは正確には何なのでしょうか、なぜ 2 つあるのでしょうか、どちらを優先すべきでしょうか?

ベストアンサー1

Qt 5.5 の新機能言う:

Q_ENUMS の代わりに Q_ENUM を追加しました。これにより、コンパイル時に QMetaEnum::fromType を使用して QMetaEnum を取得できるようになりました。このような列挙型はメタタイプとして自動的に登録され、QVariant 内で文字列に変換したり、qDebug() によって文字列として印刷したりできるようになりました。

おすすめ記事