QCoreApplication::processEvents()得使用

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循环中是一个文件复制得操作,比较占用时间。 等耗时操作结束,可以自动退出此页面。 这种方法有明显的缺点。例如:假设你想要并行调用两个类似这样的循环,其中一个将会阻止另一个直到第一个完成(所以你不能分配计算能力到不同的任务)。这也会使应用程序的事件延迟反应。因此这种方法只适合单线程中处理的简短的操作,如:启动画面和短期监控操作。

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:QCoreApplication::processEvents()得使用 https://www.yhzz.com.cn/a/13436.html

上一篇 2023-05-11
下一篇 2023-05-11

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。