Qt蓝牙服务器不能与QCoreApplication一起工作
Qt Bluetooth server not working with QCoreApplication
我试图建立一个简单的基于Qt的蓝牙服务器(rfcomm),只是在控制台上打印由客户端发送的文本。我注意到,当我使用QCoreApplication(这是我需要的)而不是QGuiApplication或QApplication时,我无法接收任何消息,当客户端连接时我不会收到通知(插槽未被调用)。完整的代码可以在这里找到。服务器可以用Qt蓝牙聊天的例子进行测试,我的服务器的整个代码是从这个例子中提取的。它可能与事件循环有关,但我不知道是什么。我运行的服务器上的OS X El Capitan与Qt 5.6.1。
根据Qt团队对这个报告的bug的回应,蓝牙I/O相关功能需要一个运行循环,这在QCoreApplication中不可用。
Qt 5.7有一个解决这个问题的方法-使用Core Foundation事件调度程序。
要激活这个事件调度程序,您需要设置'QT_EVENT_DISPATCHER_CORE_FOUNDATION=1'环境变量。
相关文章:
- 没有找到相关文章