QCoreApplication::processEvents()得使用

big_anana 2020-12-17 14:44:21 13657

QCoreApplication::processEvents()一般用在,qt界面执行耗时操作会导致界面卡死,这时候使用这个函数,是为了不卡死界面,并且能处理其他得消息和事件。
大部分情况会用在while(1)以及for循环中:

    QWaiting *pwait = new QWaiting(this);
    pwait->show();

    for (int i = 0; i < fileList.size(); i++)
    {
        srcFileName = m_Src + "/" + fileList.at(i);
        destFileName = m_Dest + "/" + fileList.at(i);

        if (QFile::copy(srcFileName.simplified(), destFileName.simplified()))
        {
            iSucceed ++;
        }

        QCoreApplication::processEvents();
    }

    pwait->close();

此时定义得QWaiting *pwait 为一个弹窗,里面包含了一个GIF动图,可以做耗时操作时,显示转动,不至于卡着界面。for循环中是一个文件复制得操作,比较占用时间。
等耗时操作结束,可以自动退出此页面。
这种方法有明显的缺点。例如:假设你想要并行调用两个类似这样的循环,其中一个将会阻止另一个直到第一个完成(所以你不能分配计算能力到不同的任务)。这也会使应用程序的事件延迟反应。因此这种方法只适合单线程中处理的简短的操作,如:启动画面和短期监控操作。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 88 6 评论 打赏
评论
1个
内容存在敏感词
手气红包
  • 112233kk 2020-12-17 23:35:12
    回复

    赞赞赞赞赞

相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
big_anana
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区