既有适合小白学习的零基础资料,也有适合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){
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**