我的应用程序有一个简单的 GUI = 我必须为我的数学函数设置一些输入参数,然后单击“计算”按钮,然后函数启动。数学函数是用纯 C 编写的,所以没有对象,只有函数。
它看起来像这样:
#include "mymath.h"
class myMath : public QMainWindow
{
Q_OBJECT
// ...
void compute();
};
void myMath::compute()
{
//get parameters from gui
call_C_fun();
// save results to GUI
}
这段代码的主要问题是,当我单击“计算”时(它进行了大量计算,最多需要 5 分钟左右)它会挂起我的 GUI,所以我不能做任何其他事情(我什至看不到我的 GUI,窗口在计算运行时“冻结”。函数完成后,它在 QLabels 上打印结果,GUI 再次“活着”。我该如何解决这个问题?我不想要我的当计算需要时间时,GUI 将被“冻结”。有什么想法吗?我想过QThread
- 但我在线程方面有点新意,所以请为新手提供简单易懂的答案:)