Qt signalsカスタム信号を使用中にエラー:error LNK 209:解析できない外部シンボル

671 ワード

エラー:
signalsの下の関数は認識できません.定義されていないことのみを宣言するのと同じです.しかし、その原因ではない.
理由:
クラスを作成するときにQWidgetを継承して作成するのではなく、自分でQWidget親クラスを追加するので、クラス宣言の上部にQ_を追加しませんでした.OBJECT.
例えば下図、追加すればいいです.
#include 

class Counter : public QObject
{
    Q_OBJECT

public:
    Counter() { m_value = 0; }

    int value() const { return m_value; }

public slots:
    void setValue(int value);

signals:
    void valueChanged(int newValue);

private:
    int m_value;
};

説明:
signalsとslotsを含むすべてのクラスにはQ_が含まれている必要があります.OBJECTは宣言の上部にあり、QObject(直接または間接)から継承する必要があります.
 
参考資料:
https://doc.qt.io/qt-5/signalsandslots.html