Qt开发之旅

Qt地图应用软件开发(二)Qt与Js交互实现

2022-04-21  本文已影响0人  秋冬不寒

Qt WebChannel基础

Qt WebChannel允许服务器(QML/ c++应用程序)和客户端(HTML/JavaScript或QML应用程序)之间的点对点通信。它由Qt WebEngine提供了开箱即用的支持。此外,它可以在所有支持WebSockets的浏览器上工作,使Qt WebChannel客户端能够运行在任何JavaScript环境中(包括QML)。这需要基于Qt WebSockets的自定义传输实现。该模块提供了一个JavaScript库,用于将c++和QML应用程序与HTML/JavaScript和QML客户端无缝集成。客户端必须使用JavaScript库来访问由主机应用程序发布的序列化的QObjects。

使用简介

首先,需要引入相应的头文件,

#include <QtWebChannel/QtWebChannel>

并在.pro文件中添加模块:

QT += webchannel

官方示例
Qt WebChannel ChatClient HTML Example: 一个通过WebSocket与QWebChannel服务器通信的HTML/JavaScript客户端。
Qt WebChannel ChatServer Example: 一个简单的聊天服务器,使用QWebChannel c++ API实现。
Qt WebChannel Standalone Example: 一个在浏览器中运行的服务器和远程客户端之间的简单聊天软件。

使用步骤

  1. 从QObject派生子类
  2. 使用QWebChannel注册(registerObject)该类
  3. 在Html文件中可以使用该类相关方法和变量
<script src="qwebchannel.js"></script> 
  <script type="text/javascript">
  new QWebChannel(qt.webChannelTransport,
  function(channel){
  var webobj = channel.objects.webobj;
  window.foo= webobj;
  webobj.jscallme();
  });
  </script>

Qt地图应用软件开发(三)向网页传递数据

上一篇下一篇

猜你喜欢

热点阅读