林試圖連接到一個網站,並執行與QT的請求,我得到這個代碼,到目前爲止,但它告訴我下面的錯誤:做一個qt的網絡請求
#include <QCoreApplication>
#include <QDebug>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QUrlQuery>
void sendRequest();
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
sendRequest();
return a.exec();
}
void sendRequest() {
QNetworkAccessManager *manager = new QNetworkAccessManager(this); connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
}
它說:
錯誤1錯誤C2355:「這個」:\用戶\ Synturas \文件\視覺工作室 2013 \項目\ qt_request \ qt_request:只能內部非靜態 成員函數或非靜態數據成員 初始化ç引用\ main.cpp 19 1 qt_request
錯誤2錯誤C2355:「這個」:\用戶\ Synturas \文件\視覺工作室 2013 \項目\ qt_request \ qt_request:只能內部非靜態 成員函數或非靜態數據成員 初始化Ç引用\ main.cpp中21 1 qt_request
錯誤3錯誤C3861: '連接':標識符不 實測值C:\ Users \用戶Synturas \文件\視覺工作室 2013 \項目\ qt_request \ qt_request \ main.cpp中20 1 qt_request 4智能感知:'this'只能在非靜態成員中使用 函數c:\ Users \ Synturas \ Documents \ Visual Studio 2013 \ Projects \ qt_request \ qt_re任務\ main.cpp中19 61 qt_request
5智能感知:標識符 「連接」 是 未定義C:\用戶\ Synturas \文件\的Visual Studio 2013 \項目\ qt_request \ qt_request \ main.cpp中20 2 qt_request
6智能感知: '這個' 可以僅由非靜態成員 函數c內使用:\用戶\ Synturas \文件\的Visual Studio 2013 \項目\ qt_request \ qt_request \ main.cpp中21 3 qt_request
(在這個項目中使用VS2013,如果這是相關的)
@Synturas在這裏我們可以做到這一點的HTML代碼,這個消息的結果可以在網絡和每個想要學習東西的人看到新的可以讀取它。請參閱我的編輯,我添加了解釋併爲每條重要線路寫了評論。 – Chernobyl 2014-09-27 17:24:46
很好的解釋,瞭解一切!但爲什麼它沒有按我的方式工作? – orbatschow 2014-09-27 17:30:57
@Synturas主要的錯誤是在'QNetworkAccessManager(this)'中,您嘗試在主cpp中將父元素設置爲QNetworkAccessManager,只有QObject子類可以作爲另一個類的父元素。第二:你嘗試做連接,但連接是QObject的靜態方法,所以它應該至少是'QObject :: connect',但是你的代碼不能做任何事情,因爲你沒有提供可以捕獲信息的槽打印它(replyFinished插槽在我的答案做到這一點) – Chernobyl 2014-09-27 17:39:14