在这里利用QNetworkAccessManager来实现下载文件,经测试,可以使用http或者ftp都可以使用,别的还未测试
此处使用QT 4.8.6
首先记得在.pro文件加入network
QT += core gui network
//此处用来实现进度条显示
void Widget::downloadProgress(qint64 a,qint64 b)
{
f->write(reply->readAll());
ui->progressBar->setMaximum(b);
ui->progressBar->setValue(a);
}
//此处当下载完毕,用来刷新和关闭文件
void Widget::onFinished(QNetworkReply * reply)//reply用于接收消息
{
qDebug() << "Your thing had finished downloading.";
f->flush();
f->close();
reply->deleteLater();
}
void Widget::on_btnDownload_clicked()
{
QFileInfo info("http://tupian.enterdesk.com/2012/0606/gha/10/11285966_1334673509285.jpg");
f = new QFile(info.fileName());
f->open(QIODevice::WriteOnly);
reply = manager->get(QNetworkRequest(QUrl("http://tupian.enterdesk.com/2012/0606/gha/10/11285966_1334673509285.jpg")));
connect(reply,SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(downloadProgress(qint64,qint64)));
}
void Widget::on_btnDel_clicked()
{
QFileInfo info("http://tupian.enterdesk.com/2012/0606/gha/10/11285966_1334673509285.jpg");
f = new QFile(info.fileName());
f->remove();
}
具体的代码可以在这里下载
Qt利用QNetworkAccessManager下载文件