Qt崩溃:ASSERT failure in QWidget:“Widgets must be created in the GUI thread“

Qt崩溃:ASSERT failure in QWidget:“Widgets must be created in the GUI thread“_第1张图片

原因
由于Qt规定了UI主线程只有一个,在另外一个线程生成UI相关对象或对其进行相关操作。
例如QWidget或其子类的构造和相关操作,都会出现此断言错误 。

可以使用信号槽机制来解决此问题。

本人报此错误原因:
在子线程中使用了messagebox导致的崩溃。

if (QMessageBox::Ok == QMessageBox::warning(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("文件类型错误")))
	return;

你可能感兴趣的:(C++基础学习,Qt常用内容参考,qt,ui,开发语言)