永发信息网

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

答案:2  悬赏:70  手机版
解决时间 2021-02-18 08:33
  • 提问者网友:刺鸟
  • 2021-02-17 15:54
我是想 主线程 将登录界面隐藏hide(),子线程将隐藏的登录界面显示出来show(),但是运行后隐藏的界面弹不出来并且显示如下信息QPixmap:It is not safe to use Pixmaps outside the GUI thread
现在请问如何才能在子线程中成功调用界面?或是用其他方法能解决都可以!
在下不甚感激。
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-02-17 16:47
Qt只允许主线程使用界面类,因为界面类不是线程安全的,不可重入,在多个线程中使用可能会出现问题,因此Qt不建议主界面线程外的线程使用图形类和调用图形类接口。建议你修改最初的设计,让界面与控制分离,主线程主要做界面显示,次线程使用signal-slot控制主线程中的界面类,从而间接达到控制目的,connect时指定slot在主线程中运行
全部回答
  • 1楼网友:酒安江南
  • 2021-02-17 18:07
你好! 你要明白只能在主线程也就是GUI线程使用QWidget类或它的子类.(简单点就是窗口只能在GUI线程使用); 你可以在子线程中向主线程发显示信号,主线程接到了就show()出来就好了, 你也可以向主线程发事件. 如有疑问,请追问。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯