Qt:QWebChannel
0、说明
QWebChannel的作用是将QObject展示给的HTML客户。
QWebChannel是连接C++应用和HTML/JS应用的桥梁。通过把一个QObject传入QWebChannel并在网页端使用qwebchannel.js,我们就可以方便、透明地访问该QObject的属性、方法和槽。在此期间,不需要人为传递控制和序列化信息,信号、属性就会自动传递到HTML用户端。
在HTML用户端,每个QObject都会生成一个对应的js object。这个js obj的各项行为可以认为是C++相关对象的镜像,可以直观地反映出来。
QWebChannel使得C++应用与HTML客户间的通话简单化,不管这个客户是在本地还是异地。唯一的限制是,HTML客户需要支持qwebchannel.js中所说的JS特性。只有这样,应用程序才能正常地与任何现代HTML浏览器或者运行时JS(如node.js)交互。
例子
Qt WebChannel Standalone Example
1、模块和加载项
| Header |
#include<QWebChannel> |
| qmake | QT += webchannel |
| Since | Qt 5.4 |
| Inherits | QObject |
2、属性
类型 |
属性 |
说明 |
相关方法 |
信号 |
| bool | blockUpdates | 设置为true时,QObject的变化与更新将会被阻塞,用户也不会知道这些变化 |
blockUpdates() setBlockUpdates(bool block) |
blockUpdatesChanged(bool block) |
3、构造
| QWebChannel(QObject *parent = Q_NULLPTR) |
用给定的parent构造一个QWebChannel对象。
一个QWebChannel只有在它连接到一个QWebChannelAbstractTransport时,才能对它进行各种操作。HTML客户同时也需要合理设置qwebchannel.js。
4、方法
返回值类型 |
方法 |
说明 |
| bool | blockUpdates() | 属性blockUpdate的getter |
| void | deregisterObject( QObject * object ) |
取消给定object和QWebChannel间的绑定 异地的客户将会受到一个destroyed信号 |
| void | registerObject( QString id , QObject * object ) |
将一个object与QWebChannel进行绑定 object的属性、信号、方法会被传递给异地的客户。之后,一个有着指定id的object将被构建 需要注意的是:1、objects必须在所有客户初始化之前被绑定;2、该方法可以通过meta-system系统和QML进行调用 |
| void | registerObjects( QHash<QString,QObject *> objects ) | 将一组objects与QWebChannel进行绑定。绑定完成后,每个object的id将被QHash中的每一项Key-Value指定。 |
| QHash<QString,QObject *> | registerObjects() | 返回已绑定的object和它的id的映射 |
| void | setBlockUpdates( bool block ) | 属性blockUpdate的setter |
5、信号
| void | blockUpdatesChanged(bool block) |
6、槽
| void | connectTo( QWebChannelAbstractTransport * transport) |
把当前QWebChannel连接到给定的transport对象 之后这个transport对象就维持了C++应用和HTML用户间的连接 |
| void | disconnectFrom(QWebChannelAbstractTransport * transport) | 取消当前QWebChannel和给定transport对象的连接 |
Qt:QWebChannel的更多相关文章
- Qt的QWebChannel和JS、HTML通信/交互驱动百度地图
Qt的QWebChannel和JS.HTML通信/交互驱动百度地图 0 前言 我一个研究嵌入式的,不知道怎么就迷上了上位机,接了几个项目都是关于Qt,这个项目还是比较经典的,自己没事儿的时候也进行研究 ...
- Qt:禁止qDebug的输出
Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
- Qt:QJsonObject
0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...
- Qt:QJsonValue
0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...
- Qt:QJsonArray
0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...
- Qt:QUrl构造时的qrc前缀
参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...
- QT:用QWebSocket实现webchannel,实现C++与HTML通信
基本原理是通过channel将C++对象暴露给HTML,在HTML中调用qwebchannel.js.前提是建立transport,QT只提供了一个抽象基类QWebChannelAbstractTra ...
- Qt:正则表达式语法:
正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式; Qt 提供了一个Q ...
随机推荐
- 简单socket服务器编程
package socket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; ...
- Iptables的命令与用法
目录 一:iptables的用法 1.iptables简介 二:Iptables链的概念 1.那四个表,有哪些作用? 2.那五条链,运行在那些地方? 3.Iptables流程图 三:iptables的 ...
- linux正则表达式(全面解析)
目录 一:linux正则表达式介绍 二:普通正则表达式 三:扩展正则 一:linux正则表达式介绍 1.正则表达式的分类(grep) 1.普通正则表达式 2.扩展正则表达式 二:普通正则表达式 ^ : ...
- 来自开发者的点赞!HMS Core荣获多个行业奖项
2021年,HMS Core发布全新HMS Core 6,为全球开发者提供多终端.跨OS.全场景的华为移动服务核心能力,和开发者共同成长.通过和开发者在行业解决方案.业务场景创新和商业增长上的持续合作 ...
- JS异步加载AMD和CMD
CommonJS 是个规范,主要用于js后端,var foo = require("./foo");foo("Hi"); AMD前置加载 require.jsr ...
- 如何在pyqt中自定义无边框窗口
前言 之前写过很多关于无边框窗口并给窗口添加特效的博客,按照时间线罗列如下: 如何在pyqt中实现窗口磨砂效果 如何在pyqt中实现win10亚克力效果 如何在pyqt中通过调用SetWindowCo ...
- React Transition css动画案例解析
实现React Transition Css动画效果 首先在项目工程中引入react-transition-group: npm install react-transition-group --sa ...
- AT2582 [ARC075D] Mirrored
首先因为这个问题的解的范围我们是不清楚的,可以先考虑一下解的范围以便后面的解题. 那么我们可以大胆猜测这个数的位数应该不会很长,否则除非使用一条与 \(D\) 有关的式子外,不论我们用什么方法都计算不 ...
- JDBC工具包commons-dbutils的基本介绍
感谢原文作者:simonXi-tech 原文链接:https://blog.csdn.net/simonforfuture/article/details/90480147 更多请查阅在线API文档: ...
- 读取.properties配置文件的方式
一.Properties类解读: 1.Properties类本质其实还是HashTabe,及底层的实现是HashTable public class Properties extends Hashta ...