Я загружаю файлы с удаленного сервера с помощью Qt5.5, и все работает нормально, но я не могу определить, когда QNetworkReply возвращает ошибку. На самом деле я пытаюсь проверить случай, если пользователь скачивает файл и вдруг у него пропадает интернет-соединение (а почему бы и нет :-) ). Для этого я запускаю загрузку и через несколько секунд отключаю кабель Ethernet.
Излучается ли в этом случае сигнал QNetworkReply::error(QNetworkReply::NetworkError)
? Если да, то почему я не ввожу свой слот в свой код ниже?
void MyClass::download(QUrl url)
{
QNetworkRequest request = QNetworkRequest(url);
QNetworkReply *reply = pManager.get(request);
// finished() is called after error(), but try both
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestError(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(finished()), this, SLOT(requestFinished()));
}
void MyClass::requestError(QNetworkReply::NetworkError err)
{
qDebug() << "error";
}
void MyClass::requestFinished()
{
qDebug() << "finished";
}
Я также подключил менеджер доступа следующим образом:
connect(&pManager, SIGNAL(finished(QNetworkReply*)), SLOT(requestFinished(QNetworkReply*)));
Когда интернет-соединение не прерывается, я захожу в слот requestFinished(), но если интернета больше нет, я не захожу ни в один слот.
Я делаю что-то неправильно?