本文介绍的是QT中实现Thread与GUI主线程通目前只会一种,采用信号槽机制
通常情况下,信号和槽机制可以同步操作这就意味着在发射信号的时候,使用直接函数即可以立刻調用连接到一个信号上的多个槽然而,当连接位于不同线程中的对象时这一机制就会变得不同步起来,可以通过修改QObject::connect()的第5个可选参数洏改变
connect的第五个参数Qt::QueuedConnection表示槽函数由接受信号的线程所执行,如果不加表示槽函数由发出信号的次线程执行当传递信号的参数类型不是QT嘚元类型时要先注册,关于QT的元类型可以参看QT文档
QMetaType这个类里面列举了所有的元类型
贴个示例的代码,次线程不断更改一个QString传给GUI主线程主线程在GUI界面上显示。
使用自定义的信号和槽需要注意以下几点: