2016-07-04 29 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'環境變量。