setzen Ich versuche, eine Q_ENUM von einem QString zu setzen, aber ich habe keine Ahnung, wie das geht. Jeder mit Erfahrung damit?Wie kann ich eine Q_ENUM von einem QString
-1
A
Antwort
0
Sie müssen die passende QMetaEnum aus dem QMetaObject für den QObject-basierten Typ, in dem Q_ENUM deklariert ist, erhalten. Sobald Sie das haben, können Sie die ganze Zahl, die die Zeichenfolge darstellt, abrufen. Ein Beispiel für die Klasse MyEnumContainer mit einem Enum genannt EnumName, die einen Eintrag hat SomeKeyInEnumName genannt, könnte dies in etwa wie folgt aussehen:
QMetaObject* metaObject = MyEnumContainer::staticMetaObject();
int enumIndex = metaObject->indexOfEnumerator("EnumName");
QMetaEnum enum = metaObject->enumerator(enumIndex);
int enumValue = enum.keyToValue("SomeKeyInEnumName");
für andere nützliche Tricks in QMetaEnum, https://doc.qt.io/qt-5/qmetaenum.html sollten Sie ein paar Ideen.
0
Enums sind Kompilierzeitkonstanten. Sie können sie nicht aus Strings setzen.
Vielleicht brauchen Sie eine QMap
oder eine QHash
, dann können Sie Schlüssel-Wert-Paare einfügen oder Suchen während der Laufzeit durchführen.
Verwandte Themen
- 1. Übersetzen eines Q_ENUM Schlüssel
- 2. Wie QJsonObject von QString
- 3. kann nicht von 'QString' analysieren
- 4. Entfernen von Akzenten aus einem QString
- 5. Wie referenziere ich einen Objektnamen mit einem QString?
- 6. wie von QGLFormat zu QString
- 7. Wie drucke ich QString mit GoogleTest-Framework?
- 8. Wie mache ich einen QString aus einem QTextStream?
- 9. Wie kann ich QMap <QString, QString> :: const_iterator als Zeiger verwenden?
- 10. Wie erstelle ich QString in PyQt4?
- 11. QString von Punycode QUrl
- 12. Wie kann ich Sprachen (wie Arabisch oder Chinesisch) in einem QString verwenden?
- 13. QString Splitting
- 14. Wie aufzuspalten QString
- 15. Besitz von QString mit QTextStream
- 16. Wie bekomme ich QString von QListView ausgewählten Artikel in Qt?
- 17. QString in eine Xerces-Zeichenfolge konvertieren
- 18. Split QString von zurückgegebenen Zeile von QFile
- 19. Nachgestellte Nullen in einem QString drucken
- 20. Wie konvertiert man QString in QDate in einem bestimmten Format?
- 21. Convert jstring zu QString
- 22. Behandeln von ASCII-Zeichen in einem Zeichen zu QString-Konvertierung
- 23. Sha1-Hash von QString holen
- 24. Ich kann QString in PySide 1.1.0 nicht finden
- 25. Wie werden Klammern und ihr Inhalt in einem QString entfernt?
- 26. Wie kann ich eine Eigenschaft von einem Objekt entfernen?
- 27. Wie kann ich zuverlässig eine Farbe von einem AttributeSet erhalten?
- 28. Wie kann ich eine Authentifizierungsanforderung von einem UIWebView erkennen?
- 29. Backbone: wie kann Referenz ich eine Sammlung von einem Modell
- 30. Wie kann ich eine Aktivität von einem Fragment starten?
Es scheint die Frage zu sein, Enum-Schlüssel zu setzen, anstatt Enum-Werte zu erhalten. Aber andererseits könnte es auch schlecht formuliert sein. – dtech