2016-07-04 32 views
0

我正在尝试构建一个简单的基于Qt的蓝牙服务器(rfcomm),它仅在控制台中输出客户端发送的文本。我注意到当我使用QCoreApplication(这是我需要的)而不是QGuiApplication或QApplication时,我无法收到任何消息,并且在客户端连接时没有通知(SLOTS未被调用) 。 整个代码可以找到here。可以使用Qt蓝牙聊天示例测试服务器,并从示例中提取服务器的完整代码。它可能与事件循环有关,但我不知道是什么。我使用Qt 5.6.1在OS X El Capitan上运行服务器。Qt蓝牙服务器不能与QCoreApplication配合使用

回答

1

根据Qt团队对this报告的错误的回应蓝牙I/O相关功能需要一个运行循环,这是QCoreApplication无法使用的。

Qt 5.7有一个解决方法 - 使用Core Foundation事件分派器。

要激活此事件调度程序,您需要设置'QT_EVENT_DISPATCHER_CORE_FOUNDATION = 1'环境变量。