我有一个程序应该通过网络下载文件。只要文件很小(<1GB),一切都很好。但是当文件大于 1GB 时,会发生以下两种情况之一:
a) 如果我将来自 QNetworkReply 的信号与下载进度连接到我的插槽之一,应用程序会因 std::bad_alloc 崩溃
b) 如果我没有连接来自 QNetworkReply 的任何信号,应用程序在 73% 时停止。
任何帮助都非常感谢。
这是我在连接中使用的代码和插槽:
QNetworkReply* reply = network_access_manager_->get(request);
connect(reply,SIGNAL(downloadProgress(qint64,qint64)),parent_,SLOT(downloadProgress(qint64,qint64)));
这是插槽:
void MainWindow::downloadProgress(qint64 bytesReceived,qint64 bytesTotal)
{
try
{
ui->label->setText(QString::number(bytesReceived));
ui->label_2->setText(QString::number(bytesTotal));
ui->progressBar->setRange(0,bytesTotal);
ui->progressBar->setValue(bytesReceived);
}
catch(std::exception& e)
{
qDebug() << e.what();
}
}