0
I次のコードを持っている:QNetworkAccessManagerは動作しません
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
m_networkAccessManager(new QNetworkAccessManager(this))
{
ui->setupUi(this);
connect(m_networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyForGeoCoordinates(QNetworkReply*)));
getCoordinates();
}
void MainWindow::getCoordinates()
{
std::string query = "http://maps.google.com/maps/api/geocode/json?address=warsaw&sensor=false&language=en";
QNetworkRequest request(QUrl(QString::fromStdString(query)));
m_reply = m_networkAccessManager->get(request);
connect(m_reply, SIGNAL(finished()), this, SLOT(rep()));
connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(slotError(QNetworkReply::NetworkError)));
connect(m_reply, SIGNAL(readyRead()), this, SLOT(rep()));
}
を、私はGoogleのサーバーにクエリーを送信し、応答を取得したいが、私は上記スロットの要求なしを送信しないとき呼び出すことはありません、私は何を間違えているのですか?そのアドレスをブラウザに置くとデータが得られます。
実際のオブジェクトでのみ接続が機能するので、私はそうは思わない。あなたの解決策では、私はconnect(null、SIGNAL(.....))しているので、エラー – bladzio
Waitを返します。信号を受信するために何もしません – someoneinthebox
m_networkAccessManager-> get()はサーバーに私の要求を送り、get()はシグナルを出すQNetworkReply objを返します。ネットワーク応答が完了すると、 はm_networkAccessManagerと同じです。返信パラメータは**の返信へのポインタを含んでいます(この返信は返信されません) – bladzio