QLCDNumber에서 새 클래스를 상속하여 클릭 할 수있게하려고했습니다. 모든 것은 clicked() 신호를 보내는 mouseReleaseEvent (QMouseEvent * e)를 정의합니다. 나는 내 코드가 정확한지 생각하지만, 그것은 신호 (mouseReleaseEvent()신호에 미해결 된 외부 기호
//myLCDNumber.h
#ifndef MYLCDNUMBER_H
#define MYLCDNUMBER_H
#include <QLCDNumber>
#include <QMouseEvent>
class myLCDNumber : public QLCDNumber
{
public:
myLCDNumber(uint numDigits);
~myLCDNumber();
void mouseReleaseEvent(QMouseEvent *e);
signals:
void clicked(void);
};
#endif // MYLCDNUMBER_H
//myLCDNumber.cpp
#include "mylcdnumber.h"
myLCDNumber::myLCDNumber(uint numDigits):QLCDNumber(numDigits){}
myLCDNumber::~myLCDNumber(){}
void myLCDNumber::mouseReleaseEvent(QMouseEvent *e)
{
qDebug("Click check");
if (e->button() == Qt::LeftButton)
emit myLCDNumber::clicked();
}
EDIT 내부) (클릭에 확인되지 않은 외부 기호 찾을 수 없습니다 : 내 모든 파일을 제대로 참조 할 수 있도록 내가 소스 목록을 확인을 내 프로젝트 파일에, 나는 qmake를 다시 실행합니다. 변경 사항 없음.
Qt의 하위 클래스에서 신호와 슬롯을 사용하려면이 매크로없이 Q_OBJECT 매크로를 추가하는 것을 잊지 마십시오. 신호와 슬롯을 사용할 수 없습니다. –