Qt 提供的 QWebEngineView 是基于 Chromium 内核的浏览器组件,允许开发者使用 HTML、CSS 和 JavaScript 构建界面并嵌入到 Qt 桌面应用中。与纯 Web 开发不同,这类应用通常需要与后端组件交互,比如获取数据渲染或执行用户指令,这就涉及前端 JavaScript 与后端 C++ 的通信问题。Qt 给出的解决方案是 QWebChannel,它能让前端页面与后端 C++ 程序实现顺畅的交互,甚至让前后端的操作风格保持一致。
1. 工作原理
QWebChannel 的核心机制其实很直观。官方文档指出,它填补了 C++ 应用程序与 HTML/JavaScript 应用程序之间的空白。通过将一个 QObject 派生对象发布到 QWebChannel,并在 HTML 端引入 qwebchannel.js,就可以透明地访问 QObject 的属性、信号和槽方法。这意味着无需手动传递消息或序列化数据,C++ 端的属性更新和信号发射会自动传输到 HTML 客户端。下面用更通俗的语言解释一下:


