Qt信号/槽与线程

5

我刚开始学习GUI编程和多线程。我正在创建一个实时应用程序,它从我的汽车接收信息并以某种有意义的方式呈现出来。我的应用程序由3个线程组成,即GUI(主线程)、渲染线程和硬件通信线程。在渲染线程和硬件线程之间是一个共享的环形缓冲区。在渲染中,我创建了一个计时器,以便每秒绘制20次新界面。我希望该线程通知主线程有一个新屏幕可用,并且我认为使用信号/槽方法最好。这就涉及到我的问题。当我的渲染调用一个槽,比如Screen_Avalable,在我的主窗口对象中在主线程中,这个槽/方法会在我的工作线程或主线程中处理?


请注意,除了GUI线程之外的任何线程都不应该在GUI上绘制任何东西,这可能不是一个好主意。您的渲染线程应该只准备要绘制的数据,并使用队列或其他方式将其传递到GUI线程。 - Sergei Tachenov
在Qt中,你无法从除了Gui线程之外的任何地方显示任何内容。 - Martin Beckett
我打算先在像素图上进行绘制,然后将像素图传递到GUI线程以便绘制到屏幕上。 - Talguy
那好吧,那就没问题了。虽然不清楚性能如何,但从线程角度来看应该是没问题的。 - Sergei Tachenov
2个回答

4
默认情况下,它在主线程中进行处理,但是请参考这篇指南获取更多信息。

2

它在主线程上进行处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接