我檢查了其他類似的問題,並嘗試了他們的解決方案,但他們不適合我。Qt5連接「沒有這樣的插槽」的錯誤
我基本上試圖使一個http客戶端,只發送請求。爲了做到這一點,我需要將QNetworkManager
的完成信號連接到某個回撥槽。
這是我的代碼。
.h文件:
...
public slots:
void finishedSlot(QNetworkReply* reply);
private:
QNetworkAccessManager *network_manager;
...
CPP文件:
...
Class1::Class1(){
network_manager = new QNetworkAccessManager(this);
QObject::connect(network_manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(finishedSlot(QNetworkReply *)));
}
...
void Class1::finishedSlot(QNetworkReply* reply)
{
// some logic with reply
}
...
正如你可以看到,槽肯定是存在並且被列在頭文件公用插槽聲明。所以我不知道爲什麼會發生這種情況。我已經嘗試清理,運行qmake,並重建。
該錯誤消息 「的QObject ::連接:沒有這樣的插槽的QObject :: finishedSlot(QNetworkReply *)」
任何想法?
注意錯誤說** QObject ** :: finishedSlot。這意味着Qt不知道你的子類。這意味着關於它的元信息沒有生成。這意味着'moc'沒有在你的課堂上運行。這意味着你的類沒有'Q_OBJECT'宏。 – peppe
您不能忘記在「slots:」區域中指定您的插槽功能(在頭文件中) – peter70