基于html 与c++ 交互

 · 2019-5-18 · 次阅读


前一阵 与c++ 交互 发现qt写页面实在太丑 于是便使用qwebchannel.js 与c++ 进行交互 发现使用起来还不错

下面 看看qwebchannel的用法

首先 新建一个qwebchannel的对象

new QWebChannel(qt.webChannelTransport, function(channel) {})

在webchannnel里面进行输入与书写

var content = channel.objects.content;

上面就是最关键的一步,所有的请求 都要基于这一步来进行

下面就是传递了 qt都需要有一个请求接口 还需要有一个回复接口

写一个最简单的登陆吧

content.requestlogin(username,password);

content.replaylogin.connect(function(data){

alert(data);

})

解释一下 上面的那个是请求 括号内的 类似于ajax的传递的参数,这里传递的是用户名和密码。下面的是返回接口,类似于ajax中的success

data 就是返回回来的数据 但是这里请注意 返回回什么,是c++ 定义好的 不是自己随意写的。

是不是觉得 很简单。下面说几个个人发现的问题

1.qwebchancel.js 基于webscoket 所以一个页面 只能新建一个new QWebChannel

2.connect代表链接 所以为了防止多次链接 请把所有connect 放到一起启动 需要调用的地方 调用请求接口 这样就能自动回复了。

3.感觉这个插件和spa 开发模式不太友好 所以个人建议 用这个交互 就别用spa了