通过WebChannel/WebSockets与QML中的HTML交互

通过WebChannel/WebSockets与QML中的HTML交互

来源:通过WebChannel/WebSockets与QML中的HTML交互

GitHub:八至

作者:狐狸家的鱼

本文链接:QML与HTML交互

在查询QML与HTML之间通信交互时资料很少,这篇文章讲解的比较清楚

 


 

一、前言

Qt允许使用所谓的混合GUI创建应用程序——在这种GUI中,可以将本机部件与基于html的内容混合在一起。通过WebChannelWebSockets公开QObject,这种混合甚至支持这些本地部分和html端之间的交互。

 

二、如何显示HTML内容

  1. 使用webEngineView
  2. 使用webView
  3. 使用独立的Web浏览器(不会集成到应用程序中);

这三种方法以不同的方式进行,但都支持QML和HTML之间的通信。

确切的说,WebEngineView以一种方式完成,而WebView(就像网络浏览器一样)以另一种方式完成。WebEngineView和WebView是两码事。

 (1)webEngineView

WebEngineView是由Qt自己基于Chromium (Qt WebEngine)的web浏览器引擎提供的web视图。它是一个功能齐全的web浏览器,与Qt捆绑并集成在一起,这很好,但同时这意味着您需要将它与您的应用程序一起拖动,这是一个相当大的东西。

(2)webView

WebView是一个web视图,但不同之处在于它使用平台的本地web浏览器(如果可用的话),因此它不需要将完整的web浏览器堆栈作为应用程序的一部分(WebEngineView就是这种情况),因此您的应用程序更轻量级。另一点是,有些平台根本不允许任何非系统的web浏览器,因此WebView是唯一可用的选项。

 (3)webEngineView 和 webView的区别

根据本文,WebEngineView和WebView的关键区别在于Qt如何与这些视图中的html内容通信。由于Chromium IPC功能,WebEngineView提供了最简单的方式-直接通过WebChannel,。而WebView(以及外部web浏览器)要求您首先为WebChannel建立一些传输。

三、与QML中的HTML交互

好的,我们可以显示HTML,但是如何从QML与之交互呢?一切都通过WebChannel。在HTML端,它是通过特殊的JavaScript库- Qt WebChannel JavaScript API完成的。

(1)WebEngineView - 直接使用Web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值