Qt - nenhum erro de sinal

Estou tentando acionar um sinal quando um clique duplo ocorre em um dos widgets arrastáveis noexemplo de ímãs de geladeira. Aqui estão as alterações que fiz na fonte de exemplo:

DragLabel:

class DragLabel : public QLabel
{
public:
    DragLabel(const QString &text, QWidget *parent);
    QString labelText() const;

public slots:
    void testSlot(){qDebug()<<"testSlot";}    //<-- implemented this slot

protected:
    void mouseDoubleClickEvent(QMouseEvent *ev){emit testSignal();}    //<-- overriden this method

private:
    QString m_labelText;

signals:
    void testSignal();    //<-- added this signal

};

A única coisa que mudei no arquivo de implementação é adicionarconnect(this,SIGNAL(testSignal()),this,SLOT(testSlot())); ao construtor de DragLabel.

Tentar compilar o projeto resultou em 'referência indefinida a `DragLabel :: testSignal ()'e'collect2: ld retornou 1 status de saída'erros.

Quando eu comento a chamada para o sinal, ele compila e executa, mas emite 'Object :: connect: nenhum sinal QLabel :: testSignal () em draglabel.cpp'aviso na saída do aplicativo. Aparentemente, testSignal () não está sendo reconhecido como um sinal.

Eu tentei adicionar a macro Q_OBJECT ao DragLabel, mas isso resulta em 4 'referência indefinida a `vtable for DragLabel ''avisos e um'collect2: ld retornou 1 status de saída'erro.

o que estou perdendo?

questionAnswers(2)

yourAnswerToTheQuestion