栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

qt 利用回调函数显示数据集下载进度

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

qt 利用回调函数显示数据集下载进度

场景:需要下载一个数据集(有很多图片),界面有一个进度条显示下载进度

下载类DataSetLoad
DataSetLoad::UploadDir(const QString & srcPath, const QString & desPath, std::function pfunc)
{
	//遍历要下载的文件夹:
	 QDirIterator dir_iterator(srcPath, QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
	 QMap qMapList;
    while (dir_iterator.hasNext())
    {
    	qMapList[filePath] = remotePath;//把下载文件所需要的信息放到map里
	}
	//计算进度:总文件的数量。已经下载了的文件数量
	int i = 0;
	int nCount = qMapList.size();
	for (auto it = qMapList.begin(); it != qMapList.end(); it++)
	{
		if(pfunc != nullptr)
			pfunc(((float)i++ )*100/ nCount);//计算下载的百分比
		downLoadOneFile();//下载一个文件
	}
}

界面显示进度条

 ui.ProgressBar->SetValue(0);
 auto pfun = [&](int nVal) {
  ui.ProgressBar->SetValue(nVal);
 };
 DataSetLoad::UploadDir(srcPath, desRootPath, pfun);

这样加进度条就不用改多少别人的代码了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/649103.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号