吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 861|回复: 15
收起左侧

[求助] QT怎么等待文件下载完成后才能再进行新的下载

[复制链接]
隐藏英雄 发表于 2023-2-6 14:04
我使用
[C++] 纯文本查看 复制代码
reply=m_networkManager->get(QNetworkRequest(m_url));


发送了下载请求,异步进行,但是我想写一个判断来判断是否有文件正在下载要怎么写呢

[C++] 纯文本查看 复制代码
        if(正在下载)
        {
            QMessageBox::information(this,"提示","正在有文件下载");
            return;
        }

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

MarioCrane 发表于 2023-2-6 15:39
哈哈,又是你 每天Qt一问。
建议不要用Qt的网络库,Qt的网络库性能十分垃圾且难用。http请求可以自行封装libcurl或使用一些开源库,例如cpr(也是封装的libcurl,十分好用),一般这些库的例程就会有关于下载文件相关的使用方法
 楼主| 隐藏英雄 发表于 2023-2-6 15:57
MarioCrane 发表于 2023-2-6 15:39
哈哈,又是你 每天Qt一问。
建议不要用Qt的网络库,Qt的网络库性能十分垃圾且难用。http请求可以自行封装l ...

大佬 那现在已经用了QT的网络库的话 有没有办法做一个判断呢
MarioCrane 发表于 2023-2-6 16:20
本帖最后由 MarioCrane 于 2023-2-6 16:24 编辑
隐藏英雄 发表于 2023-2-6 15:57
大佬 那现在已经用了QT的网络库的话 有没有办法做一个判断呢

QNetworkReply::isRunning()
QNetworkReply::isFinished()
可以判断是否完成

你代码里if的判断条件用 reply->isRunning() 就可以
 楼主| 隐藏英雄 发表于 2023-2-6 16:55
本帖最后由 隐藏英雄 于 2023-2-6 17:26 编辑
MarioCrane 发表于 2023-2-6 16:20
QNetworkReply::isRunning()
QNetworkReply::isFinished()
可以判断是否完成

是我没有讲清楚,不好意思。
流程是这样的,鼠标点击控件+传入参数---判断是否正在下载----创建并开始下载产生reply----下载中----下载完成--删除网络reply 置空网络
MarioCrane 发表于 2023-2-6 17:28
隐藏英雄 发表于 2023-2-6 16:55
是我没有讲清楚,不好意思。
流程是这样的,鼠标点击控件+传入参数---判断是否正在下载----创建并开始下 ...

那你的疑惑是哪里呢,你不是想要判断当前是不是正在下载吗?

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
隐藏英雄 + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| 隐藏英雄 发表于 2023-2-6 17:29
MarioCrane 发表于 2023-2-6 17:28
那你的疑惑是哪里呢,你不是想要判断当前是不是正在下载吗?

对的  但是在判断那里使用reply的话  第一次点击的时候由于reply 还没有产生  会导致程序奔溃
MarioCrane 发表于 2023-2-6 17:53
隐藏英雄 发表于 2023-2-6 17:29
对的  但是在判断那里使用reply的话  第一次点击的时候由于reply 还没有产生  会导致程序奔溃

你可以把每次下载产生的reply放到一个vector或者list里面,每次点按钮遍历判断下状态。完成的就从list移除

免费评分

参与人数 1热心值 +1 收起 理由
隐藏英雄 + 1 热心回复!

查看全部评分

LXGZJ237 发表于 2023-2-6 19:53
先研究一下qt自带的示例再来问吧,下载完成会发信号的
 楼主| 隐藏英雄 发表于 2023-2-6 20:15
本帖最后由 隐藏英雄 于 2023-2-6 20:21 编辑
2370177068 发表于 2023-2-6 19:53
先研究一下qt自带的示例再来问吧,下载完成会发信号的

大佬  请看一下5楼   有什么好的办法吗  下载完成发的信号,在没产生下载的时候怎么用?    我在没下载之前就需要做判断    这个逻辑我有点不明白
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表