概述
在主界面点击按钮,处理一下耗时的计算函数,由于计算函数耗时较久,所以会出现主界面被阻塞,提示未响应,然后等计算函数完成后,主界面就会恢复正常。
但是用户可能在提示未响应的时候就把程序关掉了,用户体验会很差,所以要解决这个问题。
引入
在 .pro 文件中加入 QT += concurrent在 mainwindow.h 中加入
#include <QtConcurrent>#include <QFuture>
代码
void MainWindow
::on_pushButton_clicked()
{
QFuture
<void> future
= QtConcurrent
::run(this, &MainWindow
::Calc
);
while(!future
.isFinished())
{
QApplication
::processEvents(QEventLoop
::AllEvents
, 100);
}
}
参考资料
Qt-doc-qtconcurrentrun