这是我在这里的第一篇文章,我会尽力解释我的问题,不要犹豫纠正我,因为我是初学者。
我正在使用 Qt 设计一个 GUI 来控制 3D 引擎。Qt 和 3D 引擎使用 QTcpserver 进行通信。我可以向 3D 引擎发送命令,例如“移动对象”或“列出场景中的对象”,引擎会回答。
目前,有两个问题:1)当服务器响应时,我不知道这是来自“移动”功能还是“列表”功能的响应。我在 GUI 上解析启动事件的答案,但这不是一个合适的解决方案。2)在发送命令之前,我调用了waitForReadyRead函数,它阻塞了主线程。这就是我在这里发帖的原因。
我想到了一个解决方案:一个线程,其中包含一个命令列表和函数指针,以调用下一个。当我单击 UI 按钮时,它会将命令发送到带有正确函数指针的列表,并且线程将尝试清空列表发送命令到服务器。
但我真的不知道这是否是解决我问题的好方法。我对 QTcpServer 和 QThread 了解不多,我阅读了许多文章,它们一起用于处理多个客户端连接,但这对我没有帮助。
我没有在这里发布代码,因为我认为我的问题与“代码相关”无关,但如果你问我,我很乐意这样做。
感谢您为我指出正确的方向。