0 Star 0 Fork 0

魏士杰/get-driver-info-cpp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
downloader.hpp 1.38 KB
一键复制 编辑 原始数据 按行查看 历史
魏士杰 提交于 2021-04-27 22:32 . edit downloader
#ifndef DOWNLOADER_HPP
#define DOWNLOADER_HPP
#include <iostream>
#include <QtNetwork>
class Downloader : public QObject{
Q_OBJECT
QNetworkAccessManager *manager;
QNetworkReply *reply;
QUrl url;
QFile *file;
QEventLoop * loop;
public:
Downloader(QString urlstr, QEventLoop * loop_ = nullptr){
url = urlstr;
loop = loop_;
manager = new QNetworkAccessManager(this);
reply = manager->get(QNetworkRequest(url));
QFileInfo info(url.path());
QString fileName(info.fileName());
if (fileName.isEmpty()) fileName = "index.html";
file = new QFile(fileName);
if(!file->open(QIODevice::WriteOnly))
{
qDebug() << "file open error";
delete file;
file = nullptr;
return;
}else qDebug() << fileName<< " is downloading ...";
connect(reply,SIGNAL(finished()),this,SLOT(finished()));
connect(reply,SIGNAL(readyRead()),this,SLOT(readyRead()));
}
private slots:
void readyRead() {
if (file) file->write(reply->readAll()); //如果文件存在,则写入文件
}
void finished() {
file->flush();
file->close();
reply->deleteLater();
reply = nullptr;
delete file;
file = nullptr;
if(loop != nullptr)
loop->quit();
}
};
#endif // DOWNLOADER_HPP
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/flamealpha/get-driver-info-cpp.git
git@gitee.com:flamealpha/get-driver-info-cpp.git
flamealpha
get-driver-info-cpp
get-driver-info-cpp
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385