2011-12-07 3 views
0

예를 들어, 16 진수보기를 위해 QSpinBox를 커스터마이징 할 수 있습니다. 인터넷에서 몇 가지 예를 찾아 내 버전으로 내 자신을 시험해 보았습니다. 매번 유사한 링커 오류가 발생합니다. 내가 더 QT 전문가는 아니지만 없기 때문에 내가 여기에 누군가가 도움이 될 희망 :커스텀 QSpinBox -> 컴파일되지 않음

오류 :

여기
1>CustomSpinBox.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall CustomSpinBox::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected]) 
1>CustomSpinBox.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall CustomSpinBox::qt_metacast(char const *)" ([email protected]@@[email protected]) 
1>CustomSpinBox.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CustomSpinBox::metaObject(void)const " ([email protected]@@[email protected]@XZ) 

내가 발견 샘플 코드입니다.

https://bitbucket.org/megazig/megagecko/src/c20ec5e7003c/src/qhexspinbox.h

https://bitbucket.org/megazig/megagecko/src/c20ec5e7003c/src/qhexspinbox.cpp

내 버전은 조금 더 쉽다. QT Designer의 프로모션 기능으로 통합하고자하는 CustomSpinBox 클래스가 있습니다. 문제는이 클래스를 컴파일 할 수 없다 ... 도와주세요 ...

Visual C++ 2010에서 QT 4.7.4를 사용하고 있으며 이러한 오류는 Visual Studio에서 발생합니다.

+0

추 신 : 새로운 CustomSpinBox.h를 moc해야합니까? – fpdragon

답변

1

클래스 정의를 moc해야하지만 자동으로 수행해야합니다. qmake를 사용하여 프로젝트를 컴파일하고 있습니까? * .h 파일에 클래스 정의가 있습니까? 이 * .h 파일이 프로젝트 파일의 HEADERS 목록에 추가 되었습니까?

또는 속성, 메타 객체를 사용하지 않거나 새로운 신호/슬롯을 클래스에 추가하지 않으면 클래스 정의에서 Q_OBJECT를 생략하면됩니다.

+0

감사합니다 !!! 난 그냥 내 .h 파일에서 Q_OBJECT 제거하고 지금은 작동합니다. 이것이 얼마나 중요한지는 잘 모르겠지만 지금은이 솔루션에 만족합니다;) – fpdragon

1

파일에 Q_OBJECT 매크로를 포함하고 프로젝트에서 qmake을 실행하여 moc 콘텐츠가 생성되도록하십시오.

관련 문제