Qt与HTML/JavaScript网页端通信和调用
QWebChannel类
QWebChannel
弥补了C++与HTML/JavaScript直接通信的空白。Qt内部自带了qwebchannel.js
文件,只要浏览器端支持该js文件,就可以完成相互通信。在通信时,需要在浏览器端的HTML
文件中引用该文件。
常用函数:
注册用的函数:
void QWebChannel::registerObject(const QString &id, QObject *object)
: id
表示js端调用的类的名称,object
表示C++端需要调用的类。
浏览器端注册
在浏览器的界面端需要加载这个QWebChannel
:
void QWebEnginePage::setWebChannel(QWebChannel *channel)
这是一个重载函数,浏览器的界面会使用这个channel
,并把这个channel安装在JavaScript的世界中。那么,浏览器端就会包含并可以调用这个channel
。
具体方案
一下代码参考自QtCreator自带的markdown例子,要求5.6版本以及以上
假设在一个C++端的构造函数中,我们注册一个channel
,具体代码如下:
QWebEnginePage* page=new QWebEngindPage(this); // 注册一个网页界面
// preview 是一个QWebEngineView类,相当于一个浏览器引擎,假设这是我们在UI界面中设计并命名的
ui->preview->setPage(page); QWebChannel* channel=new QWebChannel(this);
// 注册浏览器端js可以调用的类,假设m_content是我们自定义的一个继承QObject的类
channel->registerObject(QString("content"),&m_content);
page->setWebChannel(channel); // 在浏览器端注册。
在浏览器端的HTML/JaveScript代码中,可以这样使用:
<head><script src="qwebchannel.js"></script> <!--必须要包含这个文件-->
</head>
<body><script>new QWebChannel(qt.webChannelTransport,function(channel) {var content = channel.objects.content; // 注意这里的名字与注册时的一致updateText(content.text); // js自定义的函数// textChanged是content自定义的一个信号,相当于信号连接了一个函数content.textChanged.connect(updateText); });</script>
</body>
Qt与HTML/JavaScript网页端通信和调用相关推荐
- openfire运行环境部署+jwchat网页端通信聊天+插件的基础知识+webchat环境配置和下载地址
研究Openfire快一个月的时间了,最初的项目要求是利用Openfire作为服务器端,在网页端注册或输入登录信息进行类似QQ的聊天.后来需要在网页端加入客服系统实现匿名登录和实名登录功能,实现N个客 ...
- html5图片剪切板,JavaScript 网页端复制图片到剪切板
前端页面可能需要复制图片到剪切板的功能,这里使用JavaScript来实现这一功能,兼容大部分浏览器 全部代码 复制图片到剪切板 复制图片 var SelectText = function (ele ...
- 讲一个api网页全部保存到本地_WebRTC在网页端音视频通话的技术实践
WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API,经过多年来的发展与改进,日臻成熟,作 ...
- php和javascript的get和post方式 有人串口转wifi模块httpdclient网页交互通信成功源码2 wifi继电器小黄人软件ypnr
全部源码下载:链接: http://pan.baidu.com/s/1qXxr0i4 密码: 有人串口转wifi模块 httpd client通信示例-用户使用网页通过服务器收发串口数据get 功能: ...
- HTML5期末大作业:商城网页设计——仿京东商城网页端模板(8页面) HTML+CSS+JavaScript...
HTML5期末大作业:商城网页设计--仿京东商城网页端模板(8页面) HTML+CSS+JavaScript 商城网页HTML代码 学生网页课程设计期末作业下载 商城大学生网页设计制作成 临近期末, ...
- HTML5期末大作业:商城网页设计——仿京东商城网页端模板(8页面) HTML+CSS+JavaScript
HTML5期末大作业:商城网页设计--仿京东商城网页端模板(8页面) HTML+CSS+JavaScript 商城网页HTML代码 学生网页课程设计期末作业下载 商城大学生网页设计制作成 临近期末, ...
- Unity WebGL/WebPlayer与html通信对比,在html添加网页端按钮直接测试
Unity WebPlayer与html通信,在html添加网页端按钮直接测试 由于现在各大浏览器的升级,UnityWebPlayer的网页方式逐渐被摒弃掉,但是很多老项目或者追求稳定的开发者还在选择 ...
- 通过javascript在网页端生成zip压缩包并下载
通过javascript在网页端生成zip压缩包并下载 原文:通过javascript在网页端生成zip压缩包并下载 zip.js是什么 zip.js的github项目地址:http://gildas ...
- python web项目导出zip文件_通过javascript在网页端生成zip压缩包并下载
zip.js是什么 通过zip.js封装一个能在网页端生成zip文件的插件, 直接在网页中创建包含文件夹和文件的压缩包,也可以自定义名字并下载: 如何使用: 1:引用zip.js 2:引用jQuery ...
最新文章
- (以pytorch为例)路径(深度)的正则化方法的简单理解-drop path
- 日本Quoine的ICO平台正式将BCH作为融资货币
- 计算机视觉——自动识别车牌简介
- CoreLocation MKMapView
- windows2003+PHP-5.3.8+IIS6.0的安装配置
- js生日计算年龄_生男生女计算公式超准
- 10月编程语言排行榜,来了!
- 怎样去掉桌面图标和字的蓝色阴影
- vue.js--遇到的一些错误
- spring-第八篇之容器中的bean的生命周期
- JS设计模式书籍、原则
- 软件学院本科毕业设计论文格式详解
- chia矿池积点是什么-chia矿池接入的常见问题
- 深入理解Flash的沙箱
- 【Android 逆向】ELF 文件格式 ( 安装 010 Editor 二进制查看工具的 ELF.bt 插件模板 | 安装 ELF.bt 模板 | 打开 ELF 文件 )
- 英伟达显示器停止服务器,NVIDIA 451.67版显卡驱动发布:修复23个Bug、拯救144Hz HDMI显示器...
- postgresql设置开机自启动
- 代码面试最常用的10大算法(四)
- 请教modelsim中vlog的用法
- c语言课程设计宠物店,c语言课程设计-宠物店信息管理系统.doc
热门文章
- 欧几里德算法+拓展欧几里德算法
- Python中yield的作用:迭代生成器
- Python内置函数之 range()
- SLAM——绘制高精度地图的研究笔记
- Pycharm远程调试报错:undefined symbol: AttachDebuggerTracing
- yum安装nginx,并配置静态资源服务器
- 字符、字符集和字符编码详解(一文扫清疑惑)
- Java:JDK、JRE和JVM的关系(图示详解,一眼就能看明白!)
- 在Razor中如何引入命名空间?(import namespace in razor view)
- 使用xml文件存储数据使用xpath查询