我在班上有一些信号,名称为requestFinished
。
另外我有插槽_finished
,它应该激活该信号。
但我有错误undefined reference to MY_SIGNAL
。
这里是_finished
:对SOME_SIGNAL_NAME的未定义引用
void VK::_finished(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError) {
qDebug() << (QString) reply->readAll();
} else {
QString json(reply->readAll());
VKResponse *response = new VKResponse(json);
VKError *error = new VKError(json);
VKAnswer *answer = new VKAnswer(error, response);
emit requestFinished(answer);
}
}
这里是VK
类:
class VK {
public:
VK(QString token);
void request(QString method, std::map<QString, QString> data);
~VK();
private:
QString token;
private slots:
void _finished(QNetworkReply *reply);
signals:
void requestFinished(VKAnswer *answer);
};
正如你所看到的,它包含方法requestFinished
的信号。我的问题是什么?谢谢。
你的问题在'VK'类声明中缺少'Q_OBJECT'宏。 – vahancho 2014-10-31 12:34:59
我删除它,因为我得到错误'未定义的引用VK'VIN'与它。谷歌说我这是虚拟方法的问题,但我没有他们。 //对不起我的英文 – Efog 2014-10-31 12:36:54
'VK'也必须是'QObject'的子类用于信号/插槽工作 – 2014-10-31 12:41:36