我在班上有一些信號,名稱爲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