Я пытался сделать QLCDNumber доступным, наследуя новый класс от него. Все, что он делает, это определить mouseReleaseEvent (QMouseEvent * e), посылая сигнал clicked(). Я думаю, что мой код правильный, но он не может найти сигнал (неразрешенный внешний символ на щелкнул() внутри 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 без этого макроса, вы не сможете использовать сигнал и слоты. –