C

Programming/QT

[QT] static assertion failed: Type is not registered, please use the Q_DECLARE_METATYPE

QT를 이용하여, 개발을 하다 보면 자주 만나는 메시지다. QVariant와 같은 QT에 미리 지정된 템플릿 클래스를 이용하다 보면 위와 같은 에러 메시지를 종 종 볼 수 있는데, 사용자 정의 클래스/타입이 미리 선언되어있지 않아 발생하는 오류다. enum ENUM_TYPE { ENUM_1, ENUM_2 } QVariant v; v.value(); // 에러 이는 헤더 파일에 Q_DECLARE_METATYPE(TypeName) 과 같이 작성하면 해당 문제는 해결된다. enum ENUM_TYPE { ENUM_1, ENUM_2 } Q_DECLARE_METATYPE(FSStatus); QVariant v; v.value();

Programming/QT

[QT] QObject::connect: Cannot queue arguments of type 'Type Name'

QT 개발을 하던 도중, 특정 클래스를 인자로 사용하는 signal/slot을 생성하고, Connect를 할 경우 QObject::connect: Cannot queue arguments of type 'Type Name' 메시지가 출력될 때가 있다. 이러한 부분은, QT에 해당 class의 meta type이 추가되지 않아 발생하는 현상으로, 아래와 같은 코드를 추가하여 해결할 수 있다. qRegisterMetaType("CMultiTrackMini");

후유증
'C' 태그의 글 목록