Qt应用程序有多个线程

时间:2013-06-28 17:51:18

标签: c++ qt delegates pthreads

我有一个QT应用程序。

我有一个显示我的主窗口的线程(ex thread1 )(因此这与主线程不同)。

我也有自己的线程(ex thread2 )必须通知thread1更新我的GUI。 有一个快速的方法来做到这一点? 例如:thread2可能决定更新图像:所以,他应该通知thread1执行方法changeImage()

如果我直接从thread2运行此方法,我的应用程序将崩溃。 我必须使用pthread。

1 个答案:

答案 0 :(得分:3)

只有主线程才能更新GUI(由于图形系统的限制)。

但是,Qt增强了跨线程的信号槽连接所允许的线程支持。事实上,其他线程必须使用信号(emit my_signal()参见http://qt-project.org/doc/qt-4.8/signalsandslots.html)或使用QCoreApplication::postEventhttp://qt-project.org/doc/qt-4.8/qcoreapplication.html#postEvent-2

通知主线程