Qt - QWebChannel实现网页与C++程序双向通信_webchanneltransport

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取


然后我把网页放到了qt程序中



m_view = new QWebEngineView(this);

QVBoxLayout* v_layout_main = new QVBoxLayout();
setLayout(v_layout_main);


建立沟通web和c++的桥梁



m_midHelper = new MidHelper(this);
m_webChannel = new QWebChannel(this);
m_webChannel->registerObject(“xxx”, m_midHelper); // xxx是我取的名字
m_view->page()->setWebChannel(m_webChannel);


这里需要注意注册对象,第一个参数是一会web里要用的名字,第二个是要调用的对象。  
 然后QWebEngineView对象的m\_view调page找到那个web页面,架桥setWebChannel。


然后是网页里的代码



ff


这里主要一下只要 注意  
 var webobj = channel.objects.xxx;  
 里面的xxx就是上面设置的名字。其他地方复制粘贴,webobj对象调用方法,C++有什么方法直接调用就完事了,当然最好是字符串,其他类型的没试过。


然后C++怎么调web里面的方法呢?



m_view->page()->runJavaScript(QString(“js_function(‘%1’);”).arg(m_lineEdit->text()));


参考一下,方法名称用字符串拼接出来的,用arg格式化占位符补充内容。


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210518160704662.png)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210518160715904.png)


总结一下:  
 1.QWebChannel和QWebEngineView  
 2.QWebChannel的对象要塞一个QObject对象



m_webChannel->registerObject(“xxx”, m_midHelper);


3.JS里



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

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值