我需要您有关我正在编写的程序的建议。首先让我介绍一下。
设计我正在设计人机界面(MMI)。在此MMI中,有两个核心元素:
的MainWindow:
主窗口MMI
这个MainWindow是一切的基础。重要说明:在这里,我在线程a server中启动,该线程从客户端接收数据。此数据对于下一个元素非常重要。
监理
监督IHM
该窗口包含一个QTableWidget,目标是在MainWindow线程中以伪实时方式显示服务器上接收到的数据。
问题拥有的线程中的服务器MainWindow每10毫秒接收一个结构。Supervision如果窗口打开,如何将这些数据发送到窗口?我当时在考虑使用共享内存,但是对此并不确定,也没有真正使用哪种方法。
一些解决方案我尝试实施Sebastian Lange的解决方案:
线程服务器中的发射MainWindow中的连接监督槽因此,现在我的线程Server在接收到的每一帧都发出信号。但是如何在MainWindow中进行连接,以及如何Supervision接收struct emit信号?
这是我发出的代码:
MainWindow* MainWindow::m_psMainWindow = nullptr; // C++ 11 nullptr void MainWindow::emit_signal_TrameRecu(StructureSupervision::T_StructureSupervision* ptr){ emit signal_TrameRecu(ptr); } void MainWindow::lancerServeur(std::atomic<bool>& boolServer){ serveur s; StructureSupervision::T_StructureSupervision* bufferStructureRecu; while(boolServer){ bufferStructureRecu = s.receiveDataUDP(); if(bufferStructureRecu->SystemData._statutGroundFlight != 0){ m_psMainWindow->emit_signal_TrameRecu( bufferStructureRecu ); } } }