我写了一个简单的信号 - 插槽。其中i成员对象信号连接到类的槽。我收到错误
我已经给出了下面的代码...如果我在构造函数中保持连接,那么我也会收到错误。
#ifndef COUNTER_H
#define COUNTER_H
#include <QObject>
#include <QTextEdit>
class Counter : public QObject
{
Q_OBJECT
public:
Counter()
{
m_value = 0;
}
int value() const
{
return m_value;
}
public slots:
void setValue(int value);
void callSetValue();
signals:
void valueChanged(int newValue);
private:
int m_value;
QTextEdit m_text;
};
#endif // COUNTER_H
// counter.cpp
#include "counter.h"
void Counter::setValue(int value)
{
QObject::connect (&m_text, SIGNAL(textChanged()), this, SLOT(callSetValue()));
qDebug("setValue invoked");
if (value != m_value)
{
m_value = value;
m_text.setText("hai");
emit valueChanged(value);
qDebug("emited signal");
}
}
void callSetValue()
{
qDebug("callSetValue() invoked");
}
给我错误“未定义引用'Counter :: callSetValue()'
答案 0 :(得分:5)
在counter.cpp
更改
void callSetValue()
到
void Counter::callSetValue()
答案 1 :(得分:0)
您尝试重新运行qmake吗?如果修改信号或插槽而不再运行qmake,则可能尚未生成信号代码。