QWebEngineView与js交互

1.先用QWebChannel建立交互通道          

QWebChannel* channel = new QWebChannel(m_view);
m_view->page()->setWebChannel(channel);

2.在通道上注册交互对象变量。    

MFWebChannelBridge* pBridge = new MFWebChannelBridge(channel);
channel->registerObject("webChannelBridge", pBridge);

3.Qt运行Js直接调用即可,注意:Js是异步运行的           

m_view->page()->runJavaScript("onShowJsAlert3()");

4.Qt运行js,如果需要返回值,则要写回调函数   

QString strJs = QString("onShowJsAlert4()");QWebEngineCallback<const QVariant&> resultCallback = [](const QVariant& v){qDebug() << TR("4 Js的返回值是:") << v.toJsonObject();};m_view->page()->runJavaScript(strJs, resultCallback);

5.Js调用Qt,要先在<head>中添加<script src="qwebchannel.js"></script>

qwebchannel.js文件一般在Qt安装目录里可以找到。

然后页面中添加   

<script>new QWebChannel(qt.webChannelTransport, function(channel){window.bridge = channel.objects.webChannelBridge;})</script>

即可获取到注册的交互变量webChannelBridge。

最后js中直接运行Qt的槽函数即可:   

bridge.sltShowQtMsgBox1();

6.Js调用Qt,如果需要返回值,则要写异步处理函数        

          let qtRet = bridge.sltShowQtMsgBox2();Promise.resolve(qtRet).then(function (result){console.log("2 asyn return Qt value=", result.vRet);}, function (err){});

所有代码的7z压缩后的Base64编码如下:

(注意复制出来是一行,再Base64 Decode,保存成7z文件,再解压即可)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker学习——容器

容器是 Docker 的另一个核心概念&#xff0c;简单来说&#xff0c;容器是镜像的一个运行实例。所不同的是&#xff0c;镜像是静态的只读文件&#xff0c;而容器带有运行时需要的可写文件层&#xff0c;同时&#xff0c;容器中的应用进程处于运行状态。 创建容器 1新建容器 可以…

最新libimobiledevice库崩溃问题解决方案

最新libimobiledevice库崩溃运行几个小时候&#xff0c;会导致整个调用的应用崩溃。 解决方案&#xff1a; //每隔一小时&#xff0c;重新注册Idevice_event_subscribe回调函数&#xff0c;如下面代码startTimerIdevice_event_subscribe()。 因最新开源的libimobiledevice库运…

蓝桥杯[OJ 2928]分糖果-CPP(贪心、字典序)

目录 一、题目描述&#xff1a; 二、整体思路 (一)字典序比较规则 (二)正确理解题意 &#xff08;三&#xff09;分类讨论 三、代码 一、题目描述&#xff1a; 二、整体思路 (一)字典序比较规则 首先要知道字典序是怎么比较大小的&#xff0c;简单来说按以下次序进行比较&am…

再也不想去字节跳动面试了,6年测开面试遭到这样打击.....

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了快6年软件测试员。。。为了进大厂&#xff0c;也花了很多时间和精力在面试准备上&#xff0c;也刷了很多题。但题刷多了之后有点怀疑人生&#xff0c;不知道刷的这些题在之后的工作中能不能用到&…

权限管理系统-0.4.0

五、权限管理 5.1 引入JWT JWT是JSON Web Token的缩写&#xff0c;即JSON Web令牌&#xff0c;是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。 JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息&#xff0c;以…

智合同如何助力建筑行业合同智能化管理

#建筑行业 #人工智能 #AI #合同智能应用 #深度学习 #自然语言处理技术 #知识图谱智合同-采用深度学习、自然语言处理技术、知识图谱等人工智能技术&#xff0c;为企业提供专业的合同相关的智能服务。其主要服务包含&#xff1a;合同智能审查、合同要素智能提取、合同版本…

C语言基础练习——Day05

目录 选择题 编程题 数字在升序数组中出现的次数 整数转换 选择题 1、如下程序的功能是 #include <stdio.h> int main() {char ch[80] "123abcdEFG*&";int j;puts(ch);for(j 0; ch[j] ! \0; j){if(ch[j] > A && ch[j] < Z)ch[j] ch[j] e…

jsp中${xxx}代表什么

jsp中${}----是EL表达式的常规表示方式 目的是为了获取{}中指定的对象&#xff08;参数、对象等&#xff09;的值 如&#xff1a; ${user.name}<>User user (User)request(搜寻范围).getAttribute(user); String name user.getName(); out.println(name); 从当前页面起…

智能测径仪在胶管行业的应用

关键字&#xff1a;胶管外径尺寸测量&#xff0c;胶管检测仪器&#xff0c;胶管外径检测&#xff0c;高温胶管外径检测&#xff0c;软硬胶管检测&#xff0c; 智能测径仪在家胶管行业中的应用主要体现在对胶管外径的精确测量和控制上。在胶管生产过程中&#xff0c;外径的大小直…

dubbo调用的自定义过滤器中设置MDC无法生效的问题

AI的解释 Dubbo自定义过滤器不生效可能有多种原因&#xff0c;以下是一些常见的原因及解决方法&#xff1a; 过滤器未正确配置&#xff1a; 检查过滤器是否已经在Dubbo的配置文件中正确声明&#xff0c;并且已经添加到过滤器链中。在XML配置中&#xff0c;应使用<dubbo:se…

Python3虚拟环境之pipenv

pipenv是python官方推荐的包管理工具&#xff0c;集成了virtualenv, pip和pyenv三者的功能。集合了所有的包管理工具的长处&#xff0c;自动为项目创建和管理虚拟环境。 安装 pip install pipenv在Pycharm中使用 修改Pipfile的安装源参数url&#xff0c;改为https://pypi.tun…

leetcode周赛388(1-3)

周赛第一次解出来了三个&#xff0c;虽然第三个比赛时候没解出来但是很近了&#xff0c;就下来试了一下&#xff0c;真的解出来了&#xff0c;记录一下。 1.&#xff08;100233. 重新分装苹果&#xff09;题目描述&#xff1a; 给你一个长度为 n 的数组 apple 和另一个长度为 …

Valid8Proxy:一款功能强大的工作代理获取、验证和存储工具

关于Valid8Proxy Valid8Proxy是一款功能强大且用户友好的代理管理工具&#xff0c;该工具功能丰富&#xff0c;旨在帮助广大研究人员获取、验证和存储工作代理的相关信息。 无论你是需要用于网络资源爬取、网络数字匿名化还是测试网络安全的代理&#xff0c;Valid8Proxy都可以…

应用方案 |安防摄像头(IPC)的步进马达及IR-CUT驱动芯片D6212

应用领域 安防摄像头&#xff08;IPC&#xff09;的步进马达及IR-CUT驱动。 02 功能介绍 D6212内置8路带有续流二极管的达林顿驱动管阵列和一个H桥驱动&#xff0c;单芯片即可实现2个步进电机和一个IR-CUT的直接驱动&#xff0c;使得电路应用非常简单。单个达林顿管在输入…

面试被问的性能优化(给我死记硬背!)

文章目录 首屏加载性能方案SEO优化图表性能优化大文件上传失败解决方案长列表性能方案动画性能优化方案Webpack 打包优化Vite 打包优化 首屏加载性能方案 优化 Vue 项目的首屏加载性能对于提高用户体验至关重要。以下是一些关于 Vue 项目首屏优化的建议&#xff1a; 路由懒加载…

Python中如何操作数据库?

Python中如何操作数据库&#xff1f; ​​​​​ 在Python中操作数据库通常涉及到使用数据库驱动程序或ORM&#xff08;对象关系映射&#xff09;库。下面是一些常见的步骤和工具&#xff0c;用于在Python中操作数据库&#xff1a; 1. 选择数据库和驱动程序 首先&#xff0c…

java异常概述及自定义处理

前言 学到异常了&#xff0c;本来以为处理异常只是避免bug&#xff0c;结果发现还可以为了编程需要自定义异常。打好基础&#xff0c;daydayup! 异常 什么是异常 异常就是代表程序出现的问题 异常的体系 异常体系指的是java开发人员为了方便程序员使用所开发的异常类&#xff…

测试WebView的文件上传

对于WebView的文件上传&#xff0c;WebView本身是没有进行处理的&#xff0c;需要覆盖如下方法进行处理&#xff1a; fun onShowFileChooser(webView: WebView, filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: FileChooserParams )其中第三个参…

python基础练习 查找整数

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给出一个包含n个整数的数列&#xff0c;问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第二…

基于openpose的引体向上的识别计数统计项目(4)CPoseExtract类设计与实现

CPoseExtract设计为一个纯虚类,规定了基本的调用接口函数,便于后续扩展使用。 #pragma once#include "opencv2/core.hpp"class CPoseExtract {public:CPoseExtract() {};virtual ~CPoseExtract(