当前位置: 首页 > news >正文

Qt HTTP下载数据

添加头文件:

#include    <QNetworkAccessManager>
#include    <QNetworkReply>
#include    <QUrl>
#include    <QDesktopServices>

创建对象:

QNetworkAccessManager networkManager;//网络管理QNetworkReply *reply;   //网络响应QFile *downloadedFile;//下载保存的临时文件

输入url地址:

QUrl newUrl = QUrl::fromUserInput(urlSpec);//URL地址
创建临时文件:
downloadedFile =new QFile(fullFileName);
if (!downloadedFile->open(QIODevice::WriteOnly)){QMessageBox::information(this, tr("错误"),"临时文件打开错误");
发送请求,创建网络响应:
reply = networkManager.get(QNetworkRequest(newUrl));

连接信号与槽:

connect(reply, SIGNAL(finished()), this, SLOT(on_finished()));connect(reply, SIGNAL(readyRead()), this, SLOT(on_readyRead()));connect(reply, SIGNAL(downloadProgress(qint64,qint64)),this, SLOT(on_downloadProgress(qint64,qint64)));void MainWindow::on_finished()
{//网络响应结束QFileInfo fileInfo;fileInfo.setFile(downloadedFile->fileName());downloadedFile->close();delete downloadedFile;downloadedFile = Q_NULLPTR;reply->deleteLater(); //reply = Q_NULLPTR;if (ui->checkOpen->isChecked())//打开下载的文件QDesktopServices::openUrl(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));ui->btnDownload->setEnabled(true);
}void MainWindow::on_readyRead()
{//读取下载的数据downloadedFile->write(reply->readAll());
}void MainWindow::on_downloadProgress(qint64 bytesRead, qint64 totalBytes)
{//下载进程ui->progressBar->setMaximum(totalBytes);ui->progressBar->setValue(bytesRead);
}

http://www.lryc.cn/news/229191.html

相关文章:

  • 8. 深度学习——NLP
  • 部署 KVM 虚拟化平台
  • Juniper PPPOE双线路冗余RPM配置
  • 原生JS实现视频截图
  • 前端Rust二进制/wasm全平台构建流程简述
  • 加解密算法相关技术详解
  • Clickhouse学习笔记(13)—— Materialize MySQL引擎
  • 《QT从基础到进阶·二十四》按钮组QButtonGroup,单选框QRadioButton和多选框QCheckBox
  • Ansible--playbook剧本
  • MacOS下VMware Fusion配置静态IP
  • 三、机器学习基础知识:Python常用机器学习库(中文文本分析相关库)
  • Nginx 使用笔记大全(唯一入口)
  • 数据结构-二叉排序树(建立、查找、修改)
  • Linux 性能优化之使用 Tuned 配置优化方案
  • Day02_《MySQL索引与性能优化》
  • (只需三步)Vmvare tools安装教程,实现与windows互通复制粘贴与文件拖拽
  • Android自定义控件:一款多特效的智能loadingView
  • C语言之初阶指针
  • MongoDB基础知识~
  • 41. 缺失的第一个正数
  • 数据结构—数组栈的实现
  • AI大模型低成本快速定制秘诀:RAG和向量数据库
  • Please No More Sigma(构造矩阵)
  • HTML设置标签栏的图标
  • 4.CentOS7安装MySQL5.7
  • 【华为OD题库-014】告警抑制-Java
  • 高频SQL50题(基础题)-5
  • Spring IoC DI 使⽤
  • Zigbee智能家居方案设计
  • 机器视觉目标检测 - opencv 深度学习 计算机竞赛