Obsolete Members for QMetaType

QMetaType 클래스의 다음 멤버들은 더 이상 사용되지 않습니다. 이 멤버들은 기존 소스 코드가 계속 작동하도록 하기 위해 제공됩니다. 새로운 코드에서는 이 멤버들을 사용하지 않는 것을 강력히 권장합니다.

정적 공용 멤버

(deprecated in 6.0) bool compare(const void *lhs, const void *rhs, int typeId, int *result)
(deprecated in 6.0) void *construct(int type, void *where, const void *copy)
(deprecated in 6.0) bool convert(const void *from, int fromTypeId, void *to, int toTypeId)
(deprecated in 6.0) void *create(int type, const void *copy = nullptr)
(deprecated in 6.0) bool debugStream(QDebug &dbg, const void *rhs, int typeId)
(deprecated in 6.0) void destroy(int type, void *data)
(deprecated in 6.0) void destruct(int type, void *where)
(deprecated in 6.0) bool hasRegisteredDebugStreamOperator()
(deprecated in 6.0) bool hasRegisteredDebugStreamOperator(int typeId)
(deprecated in 6.0) bool load(QDataStream &stream, int type, void *data)
(deprecated in 6.0) const QMetaObject *metaObjectForType(int type)
(deprecated in 6.0) bool save(QDataStream &stream, int type, const void *data)
(deprecated in 6.0) int sizeOf(int type)
(deprecated in 6.0) int type(const char *typeName)
(deprecated in 6.0) int type(const QByteArray &typeName)
(deprecated in 6.0) QMetaType::TypeFlags typeFlags(int type)
(deprecated in 6.0) const char *typeName(int typeId)

관련 비멤버

(deprecated) int qRegisterMetaType(const char *typeName)

멤버 함수 문서

[static, deprecated in 6.0] bool QMetaType::compare(const void *lhs, const void *rhs, int typeId, int *result)

이 함수는 6.0 버전부터 사용이 권장되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않을 것을 강력히 권장합니다.

대신 비정적 compare 메서드를 사용하십시오.

lhs 와 rhs 에 있는 객체를 비교합니다. 두 객체 모두 typeId 타입이어야 합니다. lhs 가 rhs 보다 작거나 같거나 크면, result 는 0보다 작거나 같거나 크도록 설정됩니다. 비교에 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

[static, deprecated in 6.0] void *QMetaType::construct(int type, void *where, const void *copy)

이 함수는 6.0 버전부터 사용이 권장되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

where 가 가리키는 기존 메모리 영역에 주어진 type 의 값을 생성합니다. 이 값은 copy 의 복사본이며, where 를 반환합니다. copy 가 0인 경우, 값은 기본 생성됩니다.

이 함수는 해당 타입을 저장하는 데 사용되는 메모리를 명시적으로 관리하기 위한 저수준 함수입니다. 이 정도의 제어가 필요하지 않은 경우 create()를 호출하는 것을 고려하십시오(즉, "placement new" 대신 "new"를 사용하십시오).

where 가 type 타입의 값을 저장할 수 있는 위치를 가리키도록 하고, where 가 적절하게 정렬되도록 해야 합니다. 타입의 크기는 sizeOf()를 호출하여 조회할 수 있습니다.

정렬에 대한 경험적 규칙은, 해당 정렬이 플랫폼의 최대 유효 정렬 크기보다 크지 않은 한, 유형을 그 자연 경계(즉, 해당 유형보다 크고 2의 거듭제곱 중 가장 작은 값)에 맞춰 정렬해야 한다는 것입니다. 실무상 2 * sizeof(void*)보다 큰 정렬은 특수한 하드웨어 명령어(예: x86 아키텍처의 정렬된 SSE 로드 및 저장 명령어)에서만 필요합니다.

destruct() 및 sizeOf()도 참조하십시오 .

[static, deprecated in 6.0] bool QMetaType::convert(const void *from, int fromTypeId, void *to, int toTypeId)

이 함수는 6.0 버전부터 사용이 권장되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 말 것을 강력히 권장합니다.

` from `에 있는 ` fromTypeId ` 객체를 ` to `에 위치한 사전 할당된 공간(타입: ` toTypeId`)으로 변환합니다. 변환이 성공하면 ` true`를 반환하고, 그렇지 않으면 `false`를 반환합니다.

from 과 to 은 모두 유효한 포인터여야 합니다.

[static, deprecated in 6.0] void *QMetaType::create(int type, const void *copy = nullptr)

이 함수는 6.0 버전부터 더 이상 권장되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

copy 의 복사본을 반환하며, 해당 객체가 type 타입이라고 가정합니다. copy 가 0인 경우, 기본 생성된 인스턴스를 생성합니다.

destroy(), isRegistered(), Type도 참조하십시오 .

[static, deprecated in 6.0] bool QMetaType::debugStream(QDebug &dbg, const void *rhs, int typeId)

이 함수는 6.0 버전부터 사용 중단되었습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

이 함수는 오버로딩된 함수입니다.

[static, deprecated in 6.0] void QMetaType::destroy(int type, void *data)

이 함수는 6.0부터 사용이 권장되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

지정된 type 유형의 data 객체를 파기합니다.

create(), isRegistered() 및 Type도 참조하십시오 .

[static, deprecated in 6.0] void QMetaType::destruct(int type, void *where)

이 함수는 6.0 버전부터 사용 중단되었습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것이 좋습니다.

where 에 위치한 지정된 type 의 값을 소멸시킵니다.

destroy()와 달리, 이 함수는 해당 타입의 소멸자만 호출하며, delete 연산자는 호출하지 않습니다.

construct()도 참조하십시오 .

[static, deprecated in 6.0] template <typename T> bool QMetaType::hasRegisteredDebugStreamOperator()

이 함수는 6.0 버전부터 사용이 권장되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

메타 타입 시스템에 타입 T에 대한 디버그 스트림 연산자가 등록되어 있는 경우, ` true`를 반환합니다.

[static, deprecated in 6.0] bool QMetaType::hasRegisteredDebugStreamOperator(int typeId)

이 함수는 6.0 버전부터 더 이상 사용되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

대신 ` QMetaType::hasRegisteredDebugStreamOperator()`를 사용하십시오.

메타 타입 시스템에 타입 ID typeId 에 대해 등록된 디버그 스트림 연산자가 있는 경우, true 을 반환합니다.

[static, deprecated in 6.0] bool QMetaType::load(QDataStream &stream, int type, void *data)

이 함수는 6.0 버전부터 사용 중단되었습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

이 함수는 오버로드된 함수입니다.

[static, deprecated in 6.0] const QMetaObject *QMetaType::metaObjectForType(int type)

이 함수는 6.0 버전부터 더 이상 사용되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

다음과 같은 경우 ` QMetaType::metaObject `를 반환합니다. type

metaObject()도 참조하십시오 .

[static, deprecated in 6.0] bool QMetaType::save(QDataStream &stream, int type, const void *data)

이 함수는 6.0 버전부터 더 이상 사용되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

이 함수는 오버로드된 함수입니다.

[static, deprecated in 6.0] int QMetaType::sizeOf(int type)

이 함수는 6.0 버전부터 사용 중단되었습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

주어진 ` type `의 크기를 바이트 단위로 반환합니다(즉, `sizeof(T)`, 여기서 `T`는 ` type ` 인자로 식별된 실제 유형입니다).

이 함수는 일반적으로 construct()과 함께 사용되어, 특정 타입이 사용하는 메모리를 저수준으로 관리합니다.

construct() 및 QMetaType::alignOf()도 참조하십시오 .

[static, deprecated in 6.0] int QMetaType::type(const char *typeName)

이 함수는 6.0 버전부터 사용 중단되었습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

typeName 라는 유형에 대한 핸들을 반환하며, 해당 유형이 없는 경우에는 QMetaType::UnknownType 를 반환합니다.

isRegistered(), typeName() 및 Type도 참조하십시오 .

[static, deprecated in 6.0] int QMetaType::type(const QByteArray &typeName)

이 함수는 6.0 버전부터 사용 중단되었습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

typeName 라는 타입에 대한 핸들을 반환하며, 해당 타입이 없는 경우 0을 반환합니다.

이 함수는 오버로드된 함수입니다.

isRegistered() 및 typeName()도 참조하십시오 .

[static, deprecated in 6.0] QMetaType::TypeFlags QMetaType::typeFlags(int type)

이 함수는 6.0 버전부터 더 이상 사용되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

지정된 ` type`의 플래그를 반환합니다.

QMetaType::TypeFlags도 참조하십시오 .

[static, deprecated in 6.0] const char *QMetaType::typeName(int typeId)

이 함수는 6.0 버전부터 사용 중단되었습니다. 새로운 코드에서는 이 함수를 사용하지 않도록 강력히 권장합니다.

주어진 ` typeId`과 연관된 유형 이름을 반환하거나, 일치하는 유형이 없으면 null 포인터를 반환합니다. 반환된 포인터는 삭제해서는 안 됩니다.

type(), isRegistered(), Type 및 name()도 참조하십시오 .

관련 비멤버 함수

[deprecated] template <typename T> int qRegisterMetaType(const char *typeName)

이 함수는 더 이상 사용되지 않습니다. 새로운 코드에서는 이 함수를 사용하지 않는 것을 강력히 권장합니다.

T 타입에 대해 typeName 라는 타입 이름을 등록합니다. QMetaType 에서 사용하는 내부 ID를 반환합니다. 공용 기본 생성자, 공용 복사 생성자 및 공용 소멸자를 가진 모든 클래스나 구조체는 등록할 수 있습니다.

이 함수를 호출할 당시 T 가 완전히 정의된 타입이어야 합니다. 포인터 타입의 경우, 포인터가 가리키는 타입도 완전히 정의되어 있어야 합니다. 선선언된 타입에 대한 포인터를 등록하려면 Q_DECLARE_OPAQUE_POINTER()를 사용하십시오.

유형이 등록된 후에는 런타임에 해당 유형의 객체를 동적으로 생성하고 소멸시킬 수 있습니다.

이 예제는 MyClass 클래스를 등록합니다:

qRegisterMetaType<MyClass>("MyClass");

이 함수는 typedef를 등록하여 QMetaProperty 에서 또는 QueuedConnections에서 사용할 수 있도록 하는 데 유용합니다.

typedef QString CustomString;
qRegisterMetaType<CustomString>("CustomString");

경고: 이 함수는 별칭(typedef)을 등록하는 용도로만 유용합니다. 그 외의 모든 용도에서는 대신 Q_DECLARE_METATYPE 및 qMetaTypeId()를 사용해야 합니다.

isRegistered() 및 Q_DECLARE_METATYPE()도 참조하십시오 .

© 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.