0

我正在研究从 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。

在此处输入图像描述

4

1 回答 1

0

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

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

于 2013-09-19T12:55:36.693 回答