我想在std :: thread中打开一个简单的QT对话框,但是在对话框打开成功后崩溃。
price
此代码有什么问题?
答案 0 :(得分:5)
UI组件只能从主线程(也称为GUI线程)打开。
Qt GUI必须在此 [main] 线程中运行。所有小部件和几个相关类(例如QPixmap)在辅助线程中均不起作用。
答案 1 :(得分:2)
@MarkoPacak正确提到了无法在其他线程中打开对话框的主要原因。
但是,解决该问题的方法是在线程中emit
捕获一个信号,以供主线程中的slot
捕获。然后,在您的插槽中,可以显示对话框。