からQ_ENUMを設定することができ、私はQStringのからQ_ENUMを設定しようとしているが、私はこれを行うにはどのように何のアイデアを得ませんしました。これを経験した人は誰ですか?はどのように私はQStringの
-1
A
答えて
0
Q_ENUMが宣言されているQObjectベースの型に対応するQMetaObjectからQMetaEnumを取得する必要があります。それを取得したら、その文字列が表す整数を取得できます。 https://doc.qt.io/qt-5/qmetaenum.htmlはあなたにいくつかのアイデアを与える必要があり、QMetaEnumに
QMetaObject* metaObject = MyEnumContainer::staticMetaObject();
int enumIndex = metaObject->indexOfEnumerator("EnumName");
QMetaEnum enum = metaObject->enumerator(enumIndex);
int enumValue = enum.keyToValue("SomeKeyInEnumName");
他の有用なトリックの場合:SomeKeyInEnumNameというエントリがありEnumNameと呼ばれる列挙型、と例のクラスMyEnumContainerの場合、これは次のようになります。
0
列挙型は、コンパイル時定数です。 「文字列からそれらを設定する」ことはできません。
おそらくQMap
またはQHash
が必要な場合は、実行時にキーと値のペアを挿入したり、ルックアップを実行したりできます。
関連する問題
- 1. はどのように私は私に
- 2. QMap <QString、QString> :: const_iteratorをポインタとして使用するにはどうすればよいですか?
- 3. は、どのように私は私が
- 4. は、どのように私はどのように私は、ファイル作成時と
- 5. どのように私は
- 6. どのように私は
- 7. どのように私は
- 8. どのように私は
- 9. どのように私は
- 10. 、どのように私は
- 11. どのように私は
- 12. どのように私は
- 13. どのように私は
- 14. どのように私は
- 15. どのように私は
- 16. どのように私は
- 17. どのように私は
- 18. どのように私は
- 19. どのように私は
- 20. どのように私は
- 21. どのように私は
- 22. どのように私は
- 23. どのように私は
- 24. Qtの私は、このコードから実現もののように、たとえばQStringの に進とUTF16コーデックに文字列を変換したいQStringの
- 25. QStringによるマルチスレッド
- 26. は、どのように私はNHibernateは
- 27. はどのように私はC#の
- 28. はどのように私はjQueryの
- 29. はどのように私はAndroidの
- 30. はどのように私はjavascriptの
enum値を取得するのではなく、enumキーを設定することが問題です。しかし、再び、それはあまりにも言葉になることができます。 – dtech