最近想要做一个把osg放到IE端的功能,在之前的博客中已经提到了怎么进行封装。但是对于Qt 与IE (或者说js)的信号槽的交互,我没做过,也不太了解。 在Qt5.3及以下版本QT的网络通信封装的地方不一样,主要是QtWebKitWidgets. 在以上的版本会发现这个模块就不一样了。(主要可以看看这篇文章:https://blog.csdn.net/liuyez123/article/details/50509788)
在这里我就把牵涉到QT网络通信的相关例子cover一遍,以便找到符合我功能的最恰当的方法。
Qt WebChannel Chatserver Example这个例子运行界面:
例子概述:例子还是比较清晰好懂。这个例子的界面是全部都是在chatclient.html里写的,按钮的触发(比如点击等)以及对应 执行函数都是也是写在这个html.
QT中只实现一个端口的链接、端口来消息的connect函数。QWebSocketServer的用法类似于QTcpServer,所以在初始化 的时候就链接了一个端口:
ChatServer server(1234);里面的三个信号也很经典:onNewConnection()、textMessageReceived()、disconnected().
QT和IE的链接关系:通过端口1234实现。在html中有这样一句话 var wsUri = "ws://localhost:1234";然后用这个wsUri建立一个新的html端的websocket: var websocket = null;websocket = new WebSocket( wsUri );
总结:这个例子不是我想要的,它的界面和相应函数全部在html中实现,没有与QT内部进行信号槽互相调用。