初学QT QPixmap:It is not safe to use Pixmaps outside the GUI thread 报错如上 如何解决 拜托高手指教

2025-05-14 23:06:45
推荐回答(2个)
回答(1):

Qt只允许主线程使用界面类,因为界面类不是线程安全的,不可重入,在多个线程中使用可能会出现问题,因此Qt不建议主界面线程外的线程使用图形类和调用图形类接口。建议你修改最初的设计,让界面与控制分离,主线程主要做界面显示,次线程使用signal-slot控制主线程中的界面类,从而间接达到控制目的,connect时指定slot在主线程中运行

回答(2):

你要明白只能在主线程也就是GUI线程使用QWidget类或它的子类.(简单点就是窗口只能在GUI线程使用);
你可以在子线程中向主线程发显示信号,主线程接到了就show()出来就好了,
你也可以向主线程发事件.