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.