QMetaEnum Class
QMetaEnum 클래스는 열거자에 대한 메타데이터를 제공합니다. 더 보기...
| 헤더: | #include <QMetaEnum> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
공개 함수
| 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 |
정적 공용 멤버
| QMetaEnum | fromType() |
상세 설명
열거자의 이름을 확인하려면 ` name()`를 사용하십시오. 열거자의 키(각 열거 항목의 이름)는 ` key()`를 통해 반환되며, 키의 개수를 확인하려면 ` keyCount()`를 사용하십시오. ` isFlag()`는 해당 열거자가 플래그로 사용되도록 의도되었는지 여부를 반환하며, 이는 해당 값들이 OR 연산자를 사용하여 결합될 수 있음을 의미합니다.
변환 함수인 ` keyToValue()`, ` valueToKey()`, ` keysToValue()` 및 ` valueToKeys()`는 열거형 또는 집합 값의 정수 표현과 리터럴 표현 간의 변환을 허용합니다. ` scope()` 함수는 이 열거자가 선언된 클래스 범위를 반환합니다.
QMetaEnum 기능을 사용하려면 Q_ENUM 매크로를 사용하여 메타 객체 시스템 내에 열거자를 등록해야 합니다.
QMetaObject, QMetaMethod, QMetaProperty도 참조하십시오 .
멤버 함수 문서
const char *QMetaEnum::enumName() const
플래그의 열거형 이름을 (범위 정보 없이) 반환합니다.
예를 들어, ` Qt::AlignmentFlag ` 플래그의 열거형 이름은 ` AlignmentFlag `이지만, 유형 이름은 ` Alignment `입니다. 플래그가 아닌 열거형의 경우 유형 이름과 열거형 이름이 동일합니다.
열거형 이름은 유형 이름과 동일한 범위를 가집니다.
[static] template <typename T> QMetaEnum QMetaEnum::fromType()
템플릿 매개변수에 지정된 유형에 해당하는 ` QMetaEnum `를 반환합니다. 이 열거형은 ` Q_ENUM`로 선언되어야 합니다.
[since 6.9] bool QMetaEnum::is64Bit() const
이 열거형의 기본 유형이 64비트인 경우 ` true `를 반환합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
value64()도 참조하십시오 .
bool QMetaEnum::isFlag() const
이 열거자가 플래그로 사용되는 경우 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.
플래그로 사용될 때, 열거자는 OR 연산자를 사용하여 결합할 수 있습니다.
keysToValue() 및 valueToKeys()도 참조하십시오 .
bool QMetaEnum::isScoped() const
이 열거자가 C++11 열거형 클래스로 선언된 경우 ` true `를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.
bool QMetaEnum::isValid() const
이 열거형이 유효한 경우(이름이 있는 경우) true 를 반환하고, 그렇지 않으면 false를 반환합니다.
name()도 참조하십시오 .
const char *QMetaEnum::key(int index) const
지정된 index 을 가진 키를 반환하거나, 해당 키가 존재하지 않을 경우 nullptr 을 반환합니다.
keyCount(), value() 및 valueToKey()도 참조하십시오 .
int QMetaEnum::keyCount() const
키의 개수를 반환합니다.
key()도 참조하십시오 .
[since 6.9] std::optional<quint64> QMetaEnum::keyToValue64(const char *key) const
지정된 열거형 key 의 정수 값을 반환하며, key 가 정의되지 않은 경우 std::nullopt 를 반환합니다.
플래그 유형의 경우 keysToValue64()을 사용합니다.
이 함수는 기본 유형이 부호 있는 유형(예: int, short)인 경우, 32비트 열거형의 값을 항상 64비트로 부호 확장합니다. 대부분의 경우, 이것이 예상되는 동작입니다.
주목할 만한 예외는 0x8000'0000과 같이 31번째 비트가 설정된 플래그 값의 경우인데, 일부 컴파일러(예: Microsoft Visual Studio)는 자동으로 무부호 기본 유형으로 전환하지 않기 때문입니다. 이 문제를 피하려면 enum 선언에서 기본 유형을 명시적으로 지정하십시오.
참고: Qt 6.6 이전에 컴파일된 QMetaObject의경우 , 이 함수는 항상 부호 확장을 수행합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
valueToKey(), isFlag(), keysToValue64()도 참조하십시오 .
int QMetaEnum::keyToValue(const char *key, bool *ok = nullptr) const
지정된 열거형 key 의 정수 값을 반환하며, key 가 정의되지 않은 경우 -1을 반환합니다.
key 가 정의되지 않은 경우, *ok 는 false로 설정되며, 그렇지 않은 경우 *ok 는 true로 설정됩니다.
플래그 유형의 경우 keysToValue()를 사용합니다.
이것이 64비트 열거형인 경우( is64Bit() 참조), 이 함수는 값의 하위 32비트 부분을 반환합니다. 전체 값을 얻으려면 대신 keyToValue64()을 사용하십시오.
keyToValue64, valueToKey(), isFlag(), keysToValue() 및 is64Bit()도 참조하십시오 .
std::optional<quint64> QMetaEnum::keysToValue64(const char *keys) const
keys 의 값들을 OR 연산자를 사용하여 결합한 결과 값을 반환하거나, keys 가 정의되지 않은 경우 std::nullopt 를 반환합니다. keys 에 포함된 문자열들은 반드시 '|'로 구분되어야 한다는 점에 유의하십시오.
이 함수는 기본 유형이 부호 있는 유형(예: int, short)인 경우, 32비트 열거형의 값을 항상 64비트로 부호 확장합니다. 대부분의 경우, 이는 예상되는 동작입니다.
주목할 만한 예외는 0x8000'0000과 같이 31번째 비트가 설정된 플래그 값의 경우인데, 일부 컴파일러(예: Microsoft Visual Studio)는 자동으로 부호 없는 기본 유형으로 전환하지 않기 때문입니다. 이 문제를 피하려면 enum 선언에서 기본 유형을 명시적으로 지정해야 합니다.
참고: Qt 6.6 이전에 컴파일된 QMetaObject의경우 , 이 함수는 항상 부호 확장을 수행합니다.
isFlag(), valueToKey(), valueToKeys()도 참조하십시오 .
int QMetaEnum::keysToValue(const char *keys, bool *ok = nullptr) const
keys 의 값들을 OR 연산자로 결합하여 도출된 값을 반환하며, keys 가 정의되지 않은 경우에는 -1을 반환합니다. keys 에 포함된 문자열들은 반드시 '|'로 구분되어야 한다는 점에 유의하십시오.
keys 가 정의되지 않은 경우, *ok 는 false로 설정되며, 그렇지 않은 경우 *ok 는 true로 설정됩니다.
이것이 64비트 열거형인 경우( is64Bit() 참조), 이 함수는 값의 하위 32비트 부분을 반환합니다. 전체 값을 얻으려면 대신 keyToValue64()을 사용하십시오.
keysToValue64(), isFlag(), valueToKey(), valueToKeys(), is64Bit()도 참조하십시오 .
[since 6.6] QMetaType QMetaEnum::metaType() const
이 열거형의 메타 타입을 반환합니다.
이 열거형이 속한 ` QMetaObject `가 Qt 6.5 이하 버전으로 생성된 경우, 반환되는 메타 유형은 유효하지 않습니다.
참고: 이는 열거형 자체의 메타 타입이며, 그 기반이 되는 정수형 타입의 메타 타입이 아닙니다. QMetaType::underlyingType()을 사용하여 열거형의 기반 타입에 대한 메타 타입을 가져올 수 있습니다.
이 함수는 Qt 6.6부터 도입되었습니다.
const char *QMetaEnum::name() const
타입의 이름(범위 제외)을 반환합니다.
예를 들어, ` Qt::Key ` 열거형의 타입 이름은 ` Key `이고, 범위는 ` Qt `입니다.
플래그의 경우, 이 함수는 열거형(enum) 유형의 이름이 아닌 플래그 유형의 이름을 반환합니다.
isValid(), scope(), enumName()도 참조하십시오 .
const char *QMetaEnum::scope() const
이 열거자가 선언된 범위를 반환합니다.
예를 들어, ` Qt::AlignmentFlag ` 열거형의 범위는 ` Qt `이고 이름은 ` AlignmentFlag `입니다.
name()도 참조하십시오 .
[since 6.9] std::optional<quint64> QMetaEnum::value64(int index) const
지정된 index 가 존재하면 해당 값을 반환하고, 존재하지 않으면 std::nullopt 를 반환합니다.
이 함수는 기본 유형이 부호 있는 유형(예: int, short)인 경우, 32비트 열거형의 값을 항상 64비트로 부호 확장합니다. 대부분의 경우, 이는 예상되는 동작입니다.
주목할 만한 예외는 0x8000'0000과 같이 31번째 비트가 설정된 플래그 값의 경우입니다. 일부 컴파일러(예: Microsoft Visual Studio)는 자동으로 무부호 기본 유형으로 전환하지 않기 때문입니다. 이 문제를 방지하려면 enum 선언에서 기본 유형을 명시적으로 지정하십시오.
참고: Qt 6.6 이전에 컴파일된 QMetaObject의경우 , 이 함수는 항상 부호 확장을 수행합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
keyCount(), key(), keyToValue(), is64Bit()도 참조하십시오 .
int QMetaEnum::value(int index) const
지정된 index 에 해당하는 값을 반환하거나, 해당 값이 없는 경우 -1을 반환합니다.
이 열거형의 기본 데이터형이 64비트인 경우( is64Bit() 참조), 이 함수는 값의 하위 32비트 부분을 반환합니다. 전체 값을 얻으려면 대신 value64()를 사용하십시오.
value64(), keyCount(), key(), keyToValue()도 참조하십시오 .
const char *QMetaEnum::valueToKey(quint64 value) const
지정된 열거형의 이름으로 사용되는 문자열을 반환합니다. value, 또는 value 가 정의되지 않은 경우 nullptr 를 반환합니다.
플래그 유형의 경우 valueToKeys()을 사용하십시오.
isFlag() 및 valueToKeys()도 참조하십시오 .
QByteArray QMetaEnum::valueToKeys(quint64 value) const
주어진 value 를 나타내는, '|'로 구분된 키들의 바이트 배열을 반환합니다.
참고: 기본 유형이 32비트인 열거형에 64비트 ` value `를전달하면 (즉, ` is64Bit()`가 ` false`를 반환하는 경우), 빈 문자열이 반환됩니다.
isFlag(), valueToKey() 및 keysToValue()도 참조하십시오 .
© 2026 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.