• 多线程网络文件传输


    多线程网络文件传输

    效果

    【】sender

     

     

    void AndySender::on_pbt_selectFile_clicked()

    {

    QFileDialog fileDialog(this);

     

    //设置窗口的标题

    fileDialog.setWindowTitle("选择要发送的文件");

    fileDialog.setNameFilter("所有文件(*.*)"); //设置一个过滤器

    //这个标志用来设置选择的类型,比如默认是单个文件。QFileDialog::ExistingFiles 多个文件,还可以用来选择文件夹QFileDialog::Directory。QFileDialog::ExistingFile 单个文件。注意这个ExistingFile,单词后面多了一个s 表示选择多个文件。要看清楚了。

    fileDialog.setFileMode(QFileDialog::ExistingFiles);

    //弹出对话框

    if (fileDialog.exec() == QDialog::Accepted)

    {

     

    TaskManager *manager =TaskManager::getInstance();

    //strPathList 返回值是一个list,如果是单个文件选择的话,只要取出第一个来就行了。

    QStringList strPathList = fileDialog.selectedFiles();

    foreach(QString path , strPathList)

    {

    qDebug()<<"添加文件上传任务:"<<path;

    AndyProgressBar * progressBar =new AndyProgressBar();

    TaskRunner * runner =new TaskRunner;

    QString hostIp =ui->lineEdit->text();

    if(hostIp=="")

    {

    hostIp ="127.0.0.1";

    }

    runner->setHostIp(hostIp);

    runner->setTask(path,TaskRunner::uploadFile);

    connect(runner,SIGNAL(taskFinish(void*)),runner,SLOT(deleteLater()));

    connect(runner,SIGNAL(UpdatePercent(int)), progressBar,SLOT (on_UpdatePercent(int)));

    connect(runner,SIGNAL(UpdateMaximum(int)), progressBar,SLOT (on_UpdateMaximum(int)));

    connect(runner,SIGNAL(UpdateText(QString)), progressBar,SLOT(on_UpdateText(QString)));

     

    progressBar->SetMaxRange(100);

    progressBar->SetFileName(path.split("/").last());

    ui->vl_content->addWidget(progressBar);

    manager->addTask(runner);

    }

    }

    }

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

    【】

     

  • 相关阅读:
    C# 动态生成word文档
    C# 利用SharpZipLib生成压缩包
    C# 程序异常关闭时的捕获
    轻松学习UML之用例图,时序图
    轻松学习UML之类图,状态图
    C# 一款属于自己的音乐播放器
    C# MessageBox自动关闭
    C# 用户控件之温度计
    Html富文本编辑器
    java工作流引擎证照库类型的流程设计 实现方案与演示案例
  • 原文地址:https://www.cnblogs.com/tangyuanjie/p/14028262.html
Copyright © 2020-2023  润新知