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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学QT QPixmap:It is not safe to use Pixmaps outside the GUI thread 报错如上 如何解决 拜托高手指教相关的知识,希望对你有一定的参考价值。

我是想 主线程 将登录界面隐藏hide(),子线程将隐藏的登录界面显示出来show(),但是运行后隐藏的界面弹不出来并且显示如下信息QPixmap:It is not safe to use Pixmaps outside the GUI thread
现在请问如何才能在子线程中成功调用界面?或是用其他方法能解决都可以!
在下不甚感激。

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

因为我初学还不太了解这个 请问能写一下代码吗?多谢你了!

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

以上是关于初学QT QPixmap:It is not safe to use Pixmaps outside the GUI thread 报错如上 如何解决 拜托高手指教的主要内容,如果未能解决你的问题,请参考以下文章

The server principal "sa" is not able to access the database "xxxx" under the cu

解决Zookeeper报错:conf is not executed because it is not in the whitelist的解决办法

The truth is what it is, not what you see

swift 报错 Call can throw, but it is not marked with 'try' and the error is not handled

module "QtQuick" is not installed

reactlessantd-mobile 报错Inline JavaScript is not enabled. Is it set in your options?