QMetaEnum Class
QMetaEnum 클래스는 열거자에 대한 메타 데이터를 제공합니다. 더 보기...
Header: | #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 () 함수는 이 열거자가 선언된 클래스 스코프를 반환합니다.
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 이전에 컴파일된 QMetaObjects의 경우, 이 함수는 항상 부호 확장됩니다.
이 함수는 Qt 6.9에 도입되었습니다.
valueToKey(), isFlag() 및 keysToValue64()도 참조하십시오 .
int QMetaEnum::keyToValue(const char *key, bool *ok = nullptr) const
지정된 열거형 key 의 정수값을 반환하거나 key 이 정의되지 않은 경우 -1을 반환합니다.
key 이 정의되지 않은 경우 *ok 은 거짓으로 설정되고, 그렇지 않으면 *ok 은 참으로 설정됩니다.
플래그 유형의 경우 keysToValue()를 사용합니다.
64비트 열거형인 경우( is64Bit() 참조) 이 함수는 값의 하위 32비트 부분을 반환합니다. 대신 전체 값을 얻으려면 keyToValue64()를 사용합니다.
keyToValue64, valueToKey(), isFlag(), keysToValue() 및 is64Bit()도 참조하세요 .
std::optional<quint64> QMetaEnum::keysToValue64(const char *keys) const
OR 연산자를 사용하여 keys 값을 결합하여 파생된 값을 반환하거나 keys 이 정의되지 않은 경우 std::nullopt
을 반환합니다. keys 의 문자열은 '|'로 구분되어야 합니다.
이 함수는 기본 유형이 부호화된 경우(예: int
, short
) 32비트 열거형 값을 항상 64비트로 부호 확장합니다. 대부분의 경우 이것이 예상되는 동작입니다.
주목할 만한 예외는 0x8000'0000과 같이 비트 31이 설정된 플래그 값의 경우인데, 일부 컴파일러(예: Microsoft Visual Studio)는 서명되지 않은 기본 유형으로 자동 전환하지 않기 때문입니다. 이 문제를 방지하려면 enum
선언에 기본 유형을 명시적으로 지정하세요.
참고: Qt 6.6 이전에 컴파일된 QMetaObjects의 경우, 이 함수는 항상 부호 확장됩니다.
isFlag(), valueToKey() 및 valueToKeys()도 참조하십시오 .
int QMetaEnum::keysToValue(const char *keys, bool *ok = nullptr) const
OR 연산자를 사용하여 keys 의 값을 결합하여 파생된 값을 반환하거나 keys 이 정의되지 않은 경우 -1을 반환합니다. keys 의 문자열은 '|'로 구분되어야 합니다.
keys 이 정의되지 않은 경우 *ok 은 거짓으로 설정되고, 그렇지 않은 경우 *ok 은 참으로 설정됩니다.
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 를 갖습니다.
플래그의 경우 열거형 타입의 이름이 아닌 플래그 타입의 이름을 반환합니다.
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 이전에 컴파일된 QMetaObjects의 경우, 이 함수는 항상 부호 확장됩니다.
이 함수는 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()도 참조하세요 .
© 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.