Qt主界面卡死的解决方案-一些具体实现方式(五种方法)
简介 我们在写UI文件的时候,有很多情况下,是需要界面来处理业务中某些耗时的操作,这时候如果不处理好界面相关的逻辑的话,主界面就会卡死,这时候就需要我们上多线程了 逻辑1 首先上业务上一个很简单的栗子 比如我们的代码中有这么一个耗时的操作 // 第一种耗时的操作 auto fWhile1 = [] () { for (int i = 0; i < 1000000; i++) { qDebug()<<i<<endl; } }; 把这个代码绑定到一个按钮事件上 connect(ui->pushButton1, &QPushButton::clicked, fWhile1); 然后点击。发现界面卡死了,很正常,必须得等到这段代码耗时完成之后才能继续操作界面,这段代码是太不友好了,不清真,所以我们要改一下。 逻辑2 如何改动,可以看下这个函数 QCoreApplication::processEvents 来一起看下官网介绍 Processes all pending events for the calling thread according to the specified flags until there are no more events to process. You can call this function occasionally when your program