资源简介

Qt多线程下载实例

资源截图

代码片段和文件信息

#include “downloadcontrol.h“
#include 

DownloadControl::DownloadControl(Qobject *parent) :
    Qobject(parent)
{
    state = Waiting;
    file = NULL;
}

QString DownloadControl::errorString()
{
    return errorInfo;
}

qint64 DownloadControl::getFileSize(QString url int tryTimes)
{
    qint64 size = -1;

    //尝试tryTimes次
    while(tryTimes --)
    {
        QNetworkAccessManager manager;
        QEventLoop loop;

        //发出请求,获取目标地址的头部信息
        QNetworkReply *reply = manager.head(QNetworkRequest(url));
        if(!reply)continue;

        connect(reply SIGNAL(finished()) &loop SLOT(quit()));
        loop.exec();

        if(reply->error() != QNetworkReply::NoError)
        {
            errorInfo = reply->errorString();
            co

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-06-25 08:36  ThreadDownload\
     文件         700  2014-06-25 08:35  ThreadDownload\config.h
     文件       67646  2014-06-25 08:02  ThreadDownload\download.ico
     文件        8322  2014-06-25 08:18  ThreadDownload\downloadcontrol.cpp
     文件        2071  2014-06-25 08:18  ThreadDownload\downloadcontrol.h
     文件        2689  2014-06-25 08:18  ThreadDownload\downloadthread.cpp
     文件        1310  2014-06-25 08:18  ThreadDownload\downloadthread.h
     文件        2523  2014-06-25 08:18  ThreadDownload\downloadwidgets.cpp
     文件         619  2014-06-25 08:18  ThreadDownload\downloadwidgets.h
     文件         975  2014-06-25 07:58  ThreadDownload\main.cpp
     文件         766  2014-06-24 16:11  ThreadDownload\mainwindow.ui
     文件         572  2014-06-25 08:02  ThreadDownload\ThreadDownload.pro
     文件        6082  2014-06-25 08:23  ThreadDownload\widget.cpp
     文件        1145  2014-06-25 08:23  ThreadDownload\widget.h

评论

共有 条评论