QT JS交互、调用JS、传值

news2024/11/20 3:21:32

        本文详细的介绍了QT JS交互、调用JS、传值的各种操作,包括QT向JS传递String字符串、包括QT向JS传递Int数字、包括QT向JS传递List数组,同时也接收JS向QT返回的List数组、JS向QT返回的Json、JS向QT返回的数字、JS向QT返回的字符串。

本文作者原创,未经允许禁止转载。

QT JS交互、调用JS、传值目录

1 setStr

2 setInt

3 setList

4 getArr

5 getObj

6 getNum

7 getStr

8 JS代码


报错 : js: Uncaught SyntaxError: missing ) after argument list

主要是传递字符串的问题例如:

    QString str = "hello word!";
    //错误写法
    strText = "QDataStr(" + str + ")";

    //正确写法。双引号内,若有字符串要使用引号时,应该使用单引号。
    //正确写法。单引号内,若有字符串要使用引号时,应该使用双引号。
    strText = "QDataStr('"+ str + "')";
    ui->widget->page()->runJavaScript(strText);

1 setStr

        QT给JS传String类型参数

    QString str = "hello word!";

    //正确写法。双引号内,若有字符串要使用引号时,应该使用单引号。
    //正确写法。单引号内,若有字符串要使用引号时,应该使用双引号。
    strText = "QDataStr('"+ str + "')";
    ui->widget->page()->runJavaScript(strText);

2 setInt

        QT给JS传Int类型参数

    int a = 100;
    int b = 100;

    numInt << a << b;

    strText = QString("QDataInt(" + QString(QJsonDocument(numInt).toJson()) + ")");

    ui->widget->page()->runJavaScript(strText, [](const QVariant &v)
    {
        qDebug() << "QDataInt() = " << v.toInt();
    });

3 setList

        QT给JS传List类型参数

    numList << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 ;
    strText = QString("QDataList(" + QString(QJsonDocument(numList).toJson()) + ")");
    ui->widget->page()->runJavaScript(strText);

4 getArr

        QT调用JS函数接收ArrayList类型返回值

    strText = "QReturnArr()";
    ui->widget->page()->runJavaScript(strText, [](const QVariant &v)
    {
        QJsonArray ja = v.toJsonArray();
        for (int i=0;i<ja.size();i++) {
            qDebug() << "QReturnArr["<< i <<"] = " << ja.at(i).toDouble();
        }
    });

5 getObj

         QT调用JS函数接收Json类型返回值

    strText = "QReturnObj()";
    ui->widget->page()->runJavaScript(strText, [](const QVariant &v)
    {
        QJsonObject jo = v.toJsonObject();
        qDebug() << "QReturnObj = " << jo;
    });

6 getNum

         QT调用JS函数接收Double类型返回值

    strText = "QReturnNum()";
    ui->widget->page()->runJavaScript(strText, [](const QVariant &v)
    {
        qDebug() << "QReturnNum = " << v.toDouble();
    });

7 getStr

         QT调用JS函数接收QString类型返回值

    strText = "QReturnStr()";
    ui->widget->page()->runJavaScript(strText, [](const QVariant &v)
    {
        qDebug() << "QReturnStr = " << v.toString();
    });

8 JS代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>qjs</title>

  </head>
  <body>
    <div id="main" "></div>
    <script type="text/javascript">

	
		var numList;

		
		var jsArr = [180.123456789, 22, 33, 44];//js array
		var jsObj = {"num":[100.123456789, 22, 33, 44], "name":"Tom"};//json
		var jsNum = 10.1234567;
		var jsString = "hello word!";


		function QDataStr(numStr)
		{
			alert("js alert:" + numStr);
		}
		
		function QDataInt(numInt)
		{
			return numInt[0] + numInt[1];
		}
		
		function QDataList(numList)
		{
			alert("js alert[0]: numList" );//显示qt传来数组第0个元素
			alert(numList);//显示qt传来所有数组
		}
		

		function QReturnArr() {
			return jsArr;
		}
		
		function QReturnObj() {
			return jsObj;
		}
		
		function QReturnNum() {
			return jsNum;
		}
		
		function QReturnStr() {
			return jsString;
		}
    </script>
  </body>
</html>

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

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

相关文章

Vue基础8之Vue组件化编程、非单文件组件与单文件组件

Vue基础8Vue组件化编程对组件的理解一些概念的理解非单文件组件基本使用几个注意点组件的嵌套VueComponent一个重要的内置关系先导篇&#xff1a;原型对象正文&#xff08;可以理解为类的继承&#xff09;单文件组件Vue组件化编程 对组件的理解 传统方式&#xff1a; 使用组…

计算机网络-交换方式

目录电路交换&#xff08;Circuit Switching&#xff09;分组交换&#xff08;Packet Switching&#xff09;报文交换&#xff08;Message Switching&#xff09;电路交换、报文交换、分组交换的对比电路交换&#xff08;Circuit Switching&#xff09; 在电话问世后不久&#…

扫雷游戏的设计(百分百还原电脑操作)

目录 &#x1f332;了解扫雷游戏的作用原理并梳理思路 &#x1f332;扫雷游戏前期部分完善 &#x1f337;文件的创建 &#x1f337;创建菜单&#xff0c;完善主函数 &#x1f333;代码呈现&#xff1a; &#x1f332;扫雷游戏主题内容 &#x1f334;第一步初始化棋盘 &#x1…

Gradle中如何修改Springboot引入的依赖版本

扫描漏洞升级 不知道各位是否遇到过以下问题&#xff1a; 当下层项目将spring引入的某个依赖版本升级之后&#xff0c;上层项目只要指定了Springboot版本&#xff0c;那么还是会将这个版本改回去&#xff1f; 比如&#xff1a;现在有两个Springboot项目A、B&#xff0c;B项目…

Git安装和配置

GitGitee 官网安装配置教程&#xff1a;https://gitee.com/help/articles/4104本文是以官网教程为基础而展开的实践笔记。初学者可以以本文为引入&#xff0c;但建议最终以官方文档为最终深入学习的参考。一、 下载和安装Git 1、官网下载&#xff1a;https://git-scm.com 如果对…

HTML5基础

HTML5 文章目录HTML5概述开发工具浏览器开发软件DemoHTML5语法HTML5标签HTML5标签属性HTML5文档注释HTML5文档结构头部内容主体内容DemoHTML5常见标签常见块级标签标题标签水平线标签段落标签换行标签引用标签预格式标签无序列表标签有序列表标签定义列表标签分区标签常见行级标…

【Java寒假打卡】Java基础-继承

【Java寒假打卡】Java基础-继承一、继承的好处和弊端二、继承的成员变量访问特点三、重写方法四、方法重写的注意事项五、权限修饰符六、构造方法一、继承的好处和弊端 继承的好处 提高了代码的复用性 提高了代码的维护性 让类和类之间产生了关系 是多态的前提 继承的弊端 …

Flink-使用filter和SideOutPut进行分流操作

文章目录1.什么是分流&#xff1f;2. 过滤器(filter)3. 使用侧输出流&#xff08;SideOutput&#xff09;&#x1f48e;&#x1f48e;&#x1f48e;&#x1f48e;&#x1f48e; 更多资源链接&#xff0c;欢迎访问作者gitee仓库&#xff1a;https://gitee.com/fanggaolei/learni…

四、网络层(七)网络层设备

目录 7.1 路由器的组成和功能 7.2 路由表与路由转发 7.1 路由器的组成和功能 路由器是一种具有多个输入/输出端口的专用计算机&#xff0c;其任务是连接不同的网络&#xff08;可以是异构的&#xff09;并完成路由转发。在多个逻辑网络&#xff08;即多个广播域&#xff…

Vulnhub靶机:HACKADEMIC_ RTB1

目录介绍信息收集主机发现主机信息探测网站探测Sql注入挂马提权介绍 系列&#xff1a;Hackademic&#xff08;此系列共2台&#xff09; 发布日期&#xff1a;2011年9月6日 难度&#xff1a;初级 运行环境&#xff1a;VMware Workstation 目标&#xff1a;取得 root 权限 flag…

5W2H分析法

什么是5W2H 5W2H分析法又叫七何分析法&#xff0c;是二战中美国陆军兵器修理部首创。简单、方便&#xff0c;易于理解、使用&#xff0c;富有启发意义&#xff0c;广泛用于企业管理和技术活动&#xff0c;对于决策和执行性的活动措施也非常有帮助&#xff0c;也有助于弥补考虑…

【UE4 第一人称射击游戏】07-添加“AK47”武器

素材资料地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg 密码&#xff1a;jlhr 效果&#xff1a; 步骤&#xff1a; 1.打开“WalkRun_BS”&#xff0c;将内插时间改为1 2.创建一个文件夹&#xff0c;命名为“Weapons” 进入“Weapons”…

可视化数据图表-FineReportJS实现清空控件内容

1. 概述 1.1 问题描述 在使用查询控件时&#xff0c;有时我们希望能够快捷重置控件的内容&#xff0c;或者重置所有控件的内容。效果如下图所示&#xff1a; 重置某个控件的内容&#xff1a;1.2 实现思路 在使用查询控件时&#xff0c;有时我们希望能够快捷重置控件的内容&a…

H3C 二层链路聚合

简介&#xff1a; 它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路&#xff0c;从而实现增加链路带宽的目的。 成员端口&#xff1a; 选中&#xff08;Selected&#xff09;状态&#xff1a;此状态下的成员端口可以参与用户数据的转发&#xff0c;处于此状态的成员端口…

绝!OpenAI 年底上新,单卡 1 分钟生成 3D 点云,text-to 3D 告别高算力消耗时代

内容一览&#xff1a;继 DALL-E、ChatGPT 之后&#xff0c;OpenAI 再发力&#xff0c;于近日发布 PointE&#xff0c;可以依据文本提示直接生成 3D 点云。 关键词&#xff1a;OpenAI 3D 点云 PointE OpenAI 年底冲业绩&#xff0c;半个多月前发布的 ChatGPT 广大网友还没…

政务行业势能厂商 |美创科技入选《嘶吼2022中国网络安全产业势能榜》

近日&#xff0c;网络安全垂直媒体嘶吼网络安全产业研究院正式发布《嘶吼2022中国网络安全产业势能榜》评选结果。凭借在政务数据安全领域的服务深耕以及广泛的市场认可&#xff0c;美创科技入选势能榜“政务篇”&#xff0c;获评政务行业“专精型”安全厂商。 嘶吼安全产业研究…

Apache 之执行 CGI 脚本(Python 实现)

目录前言1 查看并挑选 Python 版本2 用 Python 实现一个简单的 CGI 脚本3 查看 CGI 环境变量总结前言 本文记录了一个搭建 CGI 环境的示例。前文推荐&#xff1a;《Apache 2.4.54 x64 安装及配置》。 【系统环境】 Win10-64bit Apache 2.4.54 x64 Python 3.11.1 1 查看并挑选…

PyInstaller的常用打包命令

学习了pyqt后&#xff0c;设计了界面&#xff0c;并且需要打包为exe程序。 每次打包时&#xff0c;都要查好久资料&#xff0c;故此记录一下常用的命令。 PyInstaller 是一个 Python 应用程序打包工具&#xff0c;它可以将 Python 程序打包为单个独立可执行文件。 要使用 P…

2022星空创造营应用创新大赛圆满落幕,获奖名单出炉!

​12月22日&#xff0c;2022星空创造营应用创新大赛在2022手机创新周暨第十届手机设计大赛颁奖典礼上作为特别专场正式公布获奖名单。2022星空创造营应用创新大赛由联通在线、手机设计大赛天鹅奖组委会联合主办&#xff0c;联通在线音乐公司及工信部赛迪研究院共同承办&#xf…

Vulnhub靶机:HOLYNIX_ V1

目录介绍信息收集主机发现主机信息探测网站探测万能密码文件包含漏洞文件上传提权补充&#xff1a;ip问题介绍 系列&#xff1a;Holynix&#xff08;此系列共2台&#xff09; 发布日期&#xff1a;2010年11月27日 难度&#xff1a;中 运行环境&#xff1a;VMware Workstation …