Qt 在子线程中修改UI

时间:2024-05-21 09:38:45

说明

因为UI更改需要在主线程中完成,如果在子线程中修改UI,会导致错误或者内存问题。

思路

在子线程中通过信号-槽的方式,向主线程发送更改UI的信号;主线程接收到信号后,完成对UI的更改。

注意

1、子线程中发送信号,必须要在子线程的头文件中加上宏Q_OBJECT。如果不加这个宏,在编译时会报错“error: collect2: error: ld returned 1”。

 

Qt 在子线程中修改UI

2、加上宏Q_OBJECT后,需要先清理项目,然后“构建”工具栏中点击“执行qmake”,最后重新构建项目。【一定要按照这个流程来操作,否则依然会出现错误“error: collect2: error: ld returned 1”】

Qt 在子线程中修改UI