QMetaEnum Class
Die Klasse QMetaEnum liefert Metadaten über einen Enumerator. Mehr...
Kopfzeile: | #include <QMetaEnum> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Öffentliche Funktionen
const char * | enumName() const |
(since 6.9) bool | is64Bit() const |
bool | isFlag() const |
bool | isScoped() const |
bool | isValid() const |
const char * | key(int index) const |
int | keyCount() const |
(since 6.9) std::optional<quint64> | keyToValue64(const char *key) const |
int | keyToValue(const char *key, bool *ok = nullptr) const |
std::optional<quint64> | keysToValue64(const char *keys) const |
int | keysToValue(const char *keys, bool *ok = nullptr) const |
(since 6.6) QMetaType | metaType() const |
const char * | name() const |
const char * | scope() const |
(since 6.9) std::optional<quint64> | value64(int index) const |
int | value(int index) const |
const char * | valueToKey(quint64 value) const |
QByteArray | valueToKeys(quint64 value) const |
Statische öffentliche Mitglieder
QMetaEnum | fromType() |
Detaillierte Beschreibung
Verwenden Sie name() für den Namen des Zählers. Die Schlüssel des Zählers (Namen der einzelnen Aufzählungselemente) werden von key() zurückgegeben; verwenden Sie keyCount(), um die Anzahl der Schlüssel zu ermitteln. isFlag() gibt zurück, ob der Enumerator als Flag verwendet werden soll, was bedeutet, dass seine Werte mit dem OR-Operator kombiniert werden können.
Die Konvertierungsfunktionen keyToValue(), valueToKey(), keysToValue() und valueToKeys() ermöglichen die Konvertierung zwischen der ganzzahligen Darstellung eines Aufzählungs- oder Mengenwerts und seiner literalen Darstellung. Die Funktion scope() gibt den Klassenbereich zurück, in dem dieser Aufzählungswert deklariert wurde.
Siehe auch QMetaObject, QMetaMethod, und QMetaProperty.
Dokumentation der Mitgliedsfunktionen
const char *QMetaEnum::enumName() const
Gibt den Enum-Namen des Flags zurück (ohne den Bereich).
Das Flag Qt::AlignmentFlag hat zum Beispiel AlignmentFlag
als Enum-Namen, aber Alignment
als Typnamen. Nicht-Flag-Enums haben denselben Typ- und Enum-Namen.
Enum-Namen haben denselben Geltungsbereich wie der Typname.
Siehe auch isValid() und name().
[static]
template <typename T> QMetaEnum QMetaEnum::fromType()
Gibt die QMetaEnum zurück, die dem Typ im Template-Parameter entspricht. Die Aufzählung muss mit Q_ENUM deklariert werden.
[since 6.9]
bool QMetaEnum::is64Bit() const
Gibt true
zurück, wenn der zugrunde liegende Typ dieser Aufzählung 64 Bit breit ist.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch value64().
bool QMetaEnum::isFlag() const
Gibt true
zurück, wenn dieser Zähler als Flag verwendet wird; andernfalls wird false zurückgegeben.
Wenn sie als Flags verwendet werden, können Aufzählungszeichen mit dem Operator OR kombiniert werden.
Siehe auch keysToValue() und valueToKeys().
bool QMetaEnum::isScoped() const
Gibt true
zurück, wenn dieser Enumerator als C++11-Enum-Klasse deklariert ist; andernfalls wird false zurückgegeben.
bool QMetaEnum::isValid() const
Gibt true
zurück, wenn diese Aufzählung gültig ist (einen Namen hat); andernfalls wird false zurückgegeben.
Siehe auch name().
const char *QMetaEnum::key(int index) const
Gibt den Schlüssel mit dem angegebenen index zurück, oder nullptr
, wenn kein solcher Schlüssel existiert.
Siehe auch keyCount(), value(), und valueToKey().
int QMetaEnum::keyCount() const
Gibt die Anzahl der Schlüssel zurück.
Siehe auch key().
[since 6.9]
std::optional<quint64> QMetaEnum::keyToValue64(const char *key) const
Gibt den Integer-Wert der angegebenen Aufzählung key zurück, oder std::nullopt
, wenn key nicht definiert ist.
Für Flag-Typen, verwenden Sie keysToValue64().
Diese Funktion erweitert den Wert von 32-Bit-Aufzählungen immer mit Vorzeichen auf 64 Bit, wenn der zugrunde liegende Typ vorzeichenbehaftet ist (z. B. int
, short
). In den meisten Fällen ist dies das erwartete Verhalten.
Eine bemerkenswerte Ausnahme sind Flag-Werte, bei denen Bit 31 gesetzt ist, wie z. B. 0x8000'0000, da einige Compiler (z. B. Microsoft Visual Studio) nicht automatisch zu einem vorzeichenlosen Typ wechseln. Um dieses Problem zu vermeiden, geben Sie den zugrundeliegenden Typ in der enum
Deklaration explizit an.
Hinweis: Für QMetaObjects, die vor Qt 6.6 kompiliert wurden, ist diese Funktion immer vorzeichenerweiternd.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch valueToKey(), isFlag(), und keysToValue64().
int QMetaEnum::keyToValue(const char *key, bool *ok = nullptr) const
Gibt den ganzzahligen Wert der angegebenen Aufzählung key zurück, oder -1, wenn key nicht definiert ist.
Wenn key nicht definiert ist, * wirdok auf false gesetzt; andernfalls * wirdok auf true gesetzt.
Für Flag-Typen, verwenden Sie keysToValue().
Wenn es sich um eine 64-Bit-Aufzählung handelt (siehe is64Bit()), gibt diese Funktion den niedrigen 32-Bit-Teil des Wertes zurück. Verwenden Sie stattdessen keyToValue64(), um den vollständigen Wert zu erhalten.
Siehe auch keyToValue64, valueToKey(), isFlag(), keysToValue(), und is64Bit().
std::optional<quint64> QMetaEnum::keysToValue64(const char *keys) const
Gibt den Wert zurück, der sich aus der Kombination der Werte von keys unter Verwendung des OR-Operators ergibt, oder std::nullopt
, wenn keys nicht definiert ist. Beachten Sie, dass die Zeichenketten in keys durch '|' getrennt sein müssen.
Diese Funktion erweitert den Wert von 32-Bit-Aufzählungen immer mit Vorzeichen auf 64 Bit, wenn der zugrunde liegende Typ vorzeichenbehaftet ist (z. B. int
, short
). In den meisten Fällen ist dies das erwartete Verhalten.
Eine bemerkenswerte Ausnahme sind Flag-Werte, bei denen Bit 31 gesetzt ist, wie z. B. 0x8000'0000, da einige Compiler (z. B. Microsoft Visual Studio) nicht automatisch zu einem vorzeichenlosen Typ wechseln. Um dieses Problem zu vermeiden, geben Sie den zugrundeliegenden Typ in der enum
Deklaration explizit an.
Hinweis: Für QMetaObjects, die vor Qt 6.6 kompiliert wurden, ist diese Funktion immer vorzeichenerweiternd.
Siehe auch isFlag(), valueToKey(), und valueToKeys().
int QMetaEnum::keysToValue(const char *keys, bool *ok = nullptr) const
Gibt den Wert zurück, der sich aus der Kombination der Werte von keys unter Verwendung des OR-Operators ergibt, oder -1, wenn keys nicht definiert ist. Beachten Sie, dass die Zeichenketten in keys durch '|' getrennt sein müssen.
Wenn keys nicht definiert ist, * wirdok auf false gesetzt; andernfalls * wirdok auf true gesetzt.
Wenn es sich um eine 64-Bit-Aufzählung handelt (siehe is64Bit()), gibt diese Funktion den niedrigen 32-Bit-Teil des Wertes zurück. Verwenden Sie stattdessen keyToValue64(), um den vollständigen Wert zu erhalten.
Siehe auch keysToValue64(), isFlag(), valueToKey(), valueToKeys(), und is64Bit().
[since 6.6]
QMetaType QMetaEnum::metaType() const
Gibt den Meta-Typ der Aufzählung zurück.
Wenn die QMetaObject, zu der diese Aufzählung gehört, mit Qt 6.5 oder früher erzeugt wurde, ist dies ein ungültiger Metatyp.
Hinweis: Dies ist der Metatyp der Enum selbst, nicht der des zugrundeliegenden Integraltyps. Sie können den Metatyp des zugrundeliegenden Typs der Enum mit QMetaType::underlyingType() abrufen.
Diese Funktion wurde in Qt 6.6 eingeführt.
const char *QMetaEnum::name() const
Gibt den Namen des Typs (ohne den Bereich) zurück.
Die Aufzählung Qt::Key hat zum Beispiel Key
als Typnamen und Qt als Geltungsbereich.
Bei Flags wird der Name des Flag-Typs zurückgegeben, nicht der Name des Aufzählungstyps.
Siehe auch isValid(), scope(), und enumName().
const char *QMetaEnum::scope() const
Gibt den Bereich zurück, in dem dieser Aufzähler deklariert wurde.
Zum Beispiel hat die Aufzählung Qt::AlignmentFlag Qt
als Bereich und AlignmentFlag
als Name.
Siehe auch name().
[since 6.9]
std::optional<quint64> QMetaEnum::value64(int index) const
Gibt den Wert mit dem angegebenen index zurück, wenn er existiert; oder gibt einen std::nullopt
zurück, wenn er nicht existiert.
Diese Funktion erweitert den Wert von 32-Bit-Aufzählungen immer mit Vorzeichen auf 64 Bit, wenn der zugrunde liegende Typ vorzeichenbehaftet ist (z. B. int
, short
). In den meisten Fällen ist dies das erwartete Verhalten.
Eine bemerkenswerte Ausnahme sind Flag-Werte, bei denen Bit 31 gesetzt ist, wie z. B. 0x8000'0000, da einige Compiler (z. B. Microsoft Visual Studio) nicht automatisch zu einem vorzeichenlosen Typ wechseln. Um dieses Problem zu vermeiden, geben Sie den zugrundeliegenden Typ in der enum
Deklaration explizit an.
Hinweis: Für QMetaObjects, die vor Qt 6.6 kompiliert wurden, ist diese Funktion immer vorzeichenerweiternd.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch keyCount(), key(), keyToValue(), und is64Bit().
int QMetaEnum::value(int index) const
Gibt den Wert mit dem angegebenen index zurück; oder gibt -1 zurück, wenn es keinen solchen Wert gibt.
Wenn es sich um eine Aufzählung mit einem 64-Bit-Typ handelt (siehe is64Bit()), gibt diese Funktion den unteren 32-Bit-Teil des Wertes zurück. Verwenden Sie stattdessen value64(), um den vollständigen Wert zu erhalten.
Siehe auch value64(), keyCount(), key(), und keyToValue().
const char *QMetaEnum::valueToKey(quint64 value) const
Gibt die Zeichenkette zurück, die als Name für die angegebene Aufzählung value verwendet wird, oder nullptr
, wenn value nicht definiert ist.
Für Flag-Typen, verwenden Sie valueToKeys().
Siehe auch isFlag() und valueToKeys().
QByteArray QMetaEnum::valueToKeys(quint64 value) const
Gibt ein Byte-Array mit '|'-getrennten Schlüsseln zurück, das die angegebene value darstellt.
Hinweis: Die Übergabe einer 64-Bit value an eine Aufzählung, deren zugrundeliegender Typ 32-Bit ist (d.h. wenn is64Bit() false
zurückgibt), führt dazu, dass ein leerer String zurückgegeben wird.
Siehe auch isFlag(), valueToKey(), und keysToValue().
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.