我正在研究从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。
答案 0 :(得分:0)
在Qt中,每个在其中运行事件循环的线程也将具有事件队列。因此,在接收线程中,您需要做的就是将事件发布到GUI线程中的某个对象。请注意qApp->postEvent(...)
是线程安全的,可以从任何线程调用。
如果您的CAN-to-USB加密狗在Windows端作为串行端口公开,则可以使用QtSerialPort。在这种情况下,您甚至不需要单独的线程。