顺序中止后未触发 Qt 下载进度
Qt download progress not being triggered after sequential aborts
对于使用Qt 5.3.2的旧工具,我们最近遇到了一个问题。使用管理器QNetwork
我们正在下载文件,但在下载文件之前,我们会检查是否可以从某个区域下载它们。为此,我们在第一个进度指示处中止。
从最近开始,在某些中止后,我们不再收到downloadProgress
信号,并且只有在非常快速的网络连接下才会发生。通过 WiFi,它不会重现。可能是什么问题?
一些代码片段:
开始下载:
networkManager->get(request);
networkReply->setReadBufferSize(4 * 1024 * 1024);
connect(networkReply, SIGNAL(finished()),
this, SLOT(onDownloadFinished()));
connect(networkReply, SIGNAL(downloadProgress(qint64, qint64)),
this, SLOT(onDownloadProgress()));
connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(onDownloadError(QNetworkReply::NetworkError)));
connect(networkReply, SIGNAL(sslErrors(QList<QSslError>)),
this, SLOT(onDownloadSslErrors(QList<QSslError>)));
connect(networkReply, SIGNAL(encrypted()),
this, SLOT(onEncrypted()));
下载进度:
void DownloadManager::onDownloadProgress()
{
networkReply->abort();
nrAborts++;
startDownload(myurl);
}
下载完成:
void DownloadManager::onDownloadFinished()
{
networkReply->deleteLater();
}
由于读取缓冲区在第一个onDownloadProgress
之前已满并且从未读取,因此全部卡住了。订阅readyRead
并使用networkReply->readAll()
读取数据会导致刷新缓冲区并调用downloadProgress
信号。
相关文章:
- 顺序中止后未触发 Qt 下载进度
- 使用 Qt 下载公共保管箱文件
- 无法从QT 4.8中的URL存储下载的文件
- Qt C++下载XML文件并在textEdit中显示
- 转到QT C 应用上Android/ios上下载的设备根路径
- 无法使用Qt下载>= 1GB 的文件
- Qt with OpenCV - 下载哪一个
- 试图在BlackBerry Cascades QT和QML下载图像
- Qt安装程序框架 - 读取下载的软件包版本
- 如何检测服务器允许多部分下载QT
- 我无法编译从互联网下载的Qt项目
- 无法接收来自Qt中QWebPage的下载请求
- 如何在qt程序中从维基百科下载数据
- 使用 Qt 下载多个文件
- QT C++下载多个文件,总进度为
- 使用c++和Qt下载二进制文件
- 如何使用Qt下载生成的文件
- Qt下载文件- QNetworkAccessManager,没有得到数据
- Qt下载大文件
- Qt下载超过15个文件不工作基于下载管理器的例子