Qt将数据包传输到应用程序 - 来自接收线程

时间:2013-09-19 11:48:06

标签: qt

我正在研究从USB到CAN接口接收数据的GUI应用程序。现在我希望这些数据显示在Qt GUI中。

我是一个wx-widget用户,我使用接收线程中的事件处理程序将数据发送到GUI应用程序

wx-widget中的

事件处理程序:---

wxCommandEvent eventReceive( wxVSCP_IN_EVENT, test::ID_TEST_1 );

设置事件处理程序的数据并在wx-widget中触发事件: -

eventReceive.SetClientData( msg_5 );
wxPostEvent( m_pMainThreadObj->m_pCtrlObject->m_pVSCPSessionWnd, eventReceive );

有没有办法可以从Qt下层向我的GUI发送数据?

简要说明:--- 我需要将接收线程中收到的数据包传递给GUI应用程序。 Gui是一个Tabview,在一个标签内有textview。

enter image description here

1 个答案:

答案 0 :(得分:0)

在Qt中,每个在其中运行事件循环的线程也将具有事件队列。因此,在接收线程中,您需要做的就是将事件发布到GUI线程中的某个对象。请注意qApp->postEvent(...)是线程安全的,可以从任何线程调用。

如果您的CAN-to-USB加密狗在Windows端作为串行端口公开,则可以使用QtSerialPort。在这种情况下,您甚至不需要单独的线程。