我有一个 QT 应用程序。
我有一个线程(前thread1)显示我的主窗口(所以这与主线程不同)。
我也有自己的线程(例如thread2)必须通知 thread1 更新我的 GUI。有一种快速的方法可以做到这一点吗?例如:thread2 可能决定更新图像:因此,他应通知 thread1 执行该方法changeImage()
。
如果我直接从 thread2 运行此方法,我的应用程序将崩溃。我必须使用pthread。
只有主线程应该更新 GUI(由于图形系统的限制)。
然而,Qt 增强了线程支持,允许跨线程的信号槽连接。事实上,其他线程必须使用信号(emit my_signal()
参见http://qt-project.org/doc/qt-4.8/signalsandslots.html)或使用QCoreApplication::postEvent
(http://qt-project.org/doc /qt-4.8/qcoreapplication.html#postEvent-2 )