【发布时间】:2013-06-30 09:45:36
【问题描述】:
m_request.setUrl(pDownloadInfo->url);
m_preply = pManager->get(m_request);
QObject::connect(m_preply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(DownloadError(QNetworkReply::NetworkError)));
QObject::connect(m_preply, SIGNAL(finished()), this, SLOT(ReadyRead()));
我使用 qt5.0 并使用 QNetworkAccessManager 下载 http 文件。 当我输入一个不正确的错误 url 时,我无法收到错误信号, 但是当我输入正确的网址时,我可以得到完成的信号。
这个问题的原因是什么?
【问题讨论】:
-
1) 检查第一个
connect的返回值。 2) 将connect调用放在get()调用之前。 -
@Riateche 2) 是不可能的,因为
get()分配了m_preply指针。无论如何,QNetworkAccessManager在您将控制权返回给事件循环之前不会开始任何事情。 -
但是我可以得到完成的信号,这可能意味着我将控制权返回给事件循环?