当前位置: 首页 > news >正文

QT之QScriptEngine的用法介绍

QT之QScriptEngine的用法介绍

    • 成员函数
    • 用法举例

成员函数

1)QScriptEngine::evaluate(const QString &program, const QString &fileName = QString(), int lineNumber = 1)

执行 JavaScript 代码并返回结果。

2)QScriptEngine::evaluate(const QScriptValue &script, const QString &fileName = QString(), int lineNumber = 1)
执行 JavaScript 代码并返回结果。

3)QScriptEngine::globalObject() const
返回全局对象。

4)QScriptEngine::importExtension(const QString &extensionName)
导入扩展。

5)QScriptEngine::installTranslatorFunctions(const QScriptValue &target)
安装翻译函数。

6)QScriptEngine::isEvaluating() const
检查当前是否正在执行 JavaScript 代码。

7)QScriptEngine::isEvaluating() const
检查当前是否正在执行 JavaScript 代码。

8)QScriptEngine::lastError() const
获取最后一个错误。

9)QScriptEngine::newQObject(QObject *object)
创建一个 QObject 对象。

10)QScriptEngine::newQObject(QObject *object, QScriptEngine::ValueOwnership ownership)
创建一个 QObject 对象。

11)QScriptEngine::newQObject(const QScriptValue &object):
创建一个 QObject 对象。

12)QScriptEngine::newQObject(const QScriptValue &object, QScriptEngine::ValueOwnership ownership)
创建一个 QObject 对象。

13)QScriptEngine::newQMetaObject(&QObject::staticMetaObject)
创建一个 QMetaObject 对象。

14)QScriptEngine::newQMetaObject(&QObject::staticMetaObject, QScriptEngine::ValueOwnership ownership)
创建一个 QMetaObject 对象。

15)QScriptEngine::newVariant(const QVariant &value):
创建一个 QVariant 对象。

16)QScriptEngine::newVariant(const QVariant &value, QScriptEngine::ValueOwnership ownership)
创建一个 QVariant 对象。

17)QScriptEngine::setProcessEventsInterval(int interval)
设置处理事件的时间间隔。

18)QScriptEngine::setProcessEventsInterval(int interval, QScriptEngine::ProcessEventsFlags flags)
设置处理事件的时间间隔和标志。

19)QScriptEngine::throwError(const QString &errorMessage)
抛出一个错误。

20)QScriptEngine::throwError(const QScriptValue &error)
抛出一个错误。

21)QScriptEngine::canEvaluate(const QString &program) const
该函数用于检查给定的程序是否可以被评估,即语法是否正确,或者是否包含语法错误。如果程序可以被评估,则返回true,否则返回false。

22)QScriptEngine::setAgent(QScriptEngineAgent *agent)
该函数用于设置脚本引擎的agent对象,这个agent对象可以用于实现脚本的调试和分析。

23)QScriptEngine::agent() const
该函数用于获取当前脚本引擎的agent对象。

24)QScriptEngine::hasUncaughtException() const
该函数用于检查最后一个脚本评估是否导致了未捕获的异常。如果存在未捕获的异常,则返回true,否则返回false。

25)QScriptEngine::uncaughtException() const
该函数用于获取最后一个未捕获的异常对象。

26)QScriptEngine::clearException()
该函数用于清除最后一个未捕获的异常。

27)QScriptEngine::collectGarbage()
该函数用于显式地请求垃圾回收,清理不再使用的对象。

28)QScriptEngine::reportAdditionalMemoryCost(qint64 cost)
该函数用于报告额外的内存成本,这可能会触发垃圾回收。

29)QScriptEngine::setObjectPrototype(const QScriptValue &object, const QScriptValue &prototype)
该函数用于设置对象的原型。

30)QScriptEngine::setActivationObject(const QScriptValue &activation)
该函数用于设置脚本引擎的激活对象。

31)QScriptEngine::setThisObject(const QScriptValue &thisObject)
该函数用于设置关联上下文的this对象。

32)QScriptEngine::newArray(int length = 0)
该函数用于创建一个新的JavaScript数组。

33)QScriptEngine::newDate(const QDateTime &date = QDateTime())
该函数用于创建一个新的JavaScript日期对象。

34)QScriptEngine::newFunction(const QScriptValue &function)
该函数用于创建一个新的JavaScript函数。

35)QScriptEngine::newObject()
该函数用于创建一个新的JavaScript对象。

36)QScriptEngine::newRegExp(const QString &pattern, const QString &options = QString())
该函数用于创建一个新的JavaScript正则表达式对象。

37)QScriptEngine::newString(const QString &value)
该函数用于创建一个新的JavaScript字符串对象。

38)QScriptEngine::newSymbol(const QString &value = QString())
该函数用于创建一个新的JavaScript符号对象。

39)QScriptEngine::newVariant(const QVariant &value)
该函数用于创建一个新的JavaScript variant对象

用法举例

#include <QScriptEngine>  
#include <QDebug>  int main(int argc, char *argv[])  
{  QScriptEngine engine;  // 定义一个JavaScript函数  QScriptValue func = engine.newFunction(  [](const QScriptValue &arg1, const QScriptValue &arg2) {  return arg1.toNumber() + arg2.toNumber();  }  );  // 将函数注册到全局对象中  engine.globalObject().setProperty("add", func);  // 执行JavaScript代码  QScriptValue result = engine.evaluate("var a = 1; var b = 2; add(a, b);");  qDebug() << "Result: " << result.toNumber(); // 输出:Result: 3  return 0;  
}

在这个例子中,我们创建了一个QScriptEngine对象,然后定义了一个JavaScript函数,并将其注册到全局对象中。然后我们执行一段JavaScript代码,该代码使用我们定义的函数将两个数字相加,并将结果打印出来。

相关文章:

QT之QScriptEngine的用法介绍

QT之QScriptEngine的用法介绍 成员函数用法举例 成员函数 1&#xff09;QScriptEngine::evaluate(const QString &program, const QString &fileName QString(), int lineNumber 1) 执行 JavaScript 代码并返回结果。 2&#xff09;QScriptEngine::evaluate(const…...

vim 工具的使用

注&#xff1a;以下操作都在普通模式下进行 光标的移动操作 gg 定位到代码的第一行 shiftg 定位到代码的最后一行 nshiftg 定位到第n行 shift6: 特定一行的开始 shift4 特定一行的结尾 上下左右的移动光标 h: 向左移动光标 j: 向下移动光标 k: 向上移动光标 l: 向右移动光标 …...

RPA有什么优势?RPA的8大优势!建议学习!

随着科技的不断发展&#xff0c;越来越多的企业开始寻求数字化转型&#xff0c;以提高生产力和效率。在这个过程中&#xff0c;RPA&#xff08;Robotic Process Automation&#xff09;机器人流程自动化技术逐渐成为企业数字化转型的重要工具之一。本文将从八个方面阐述RPA的优…...

初级篇—第二章SELECT查询语句

文章目录 什么是SQLSQL 分类SQL语言的规则与规范阿里巴巴MySQL命名规范数据导入指令 显示表结构 DESC基本的SELECT语句SELECTSELECT ... FROM列的别名 AS去除重复行 DISTINCT空值参与运算着重号查询常数过滤数据 WHERE练习 运算符算术运算符加减符号乘除符号取模符号 符号比较运…...

PostMan的学习

PostMan的学习 目录 环境变量和全局变量接口关联内置动态参数以及自定义动态参数实现业务闭环Postman断言批量运行collection数据驱动之CSV文件和JSON文件测试必须带请求头的接口Mock Serviers 服务器Cookie鉴权NewmanPostManNewManjenkins实现接口测试持续集成 参考资料&am…...

配置OSPF路由

OSPF路由 1.OSPF路由 1.1 OSPF简介 OSPF(Open Shortest Path First&#xff0c;开放式最短路径优先&#xff09;路由协议是另一个比较常用的路由协议之一&#xff0c;它通过路由器之间通告网络接口的状态&#xff0c;使用最短路径算法建立路由表。在生成路由表时&#xff0c;…...

CCF CSP认证 历年题目自练Day17

CCF CSP认证 历年题目自练Day17 题目一 试题编号&#xff1a; 201803-1 试题名称&#xff1a; 跳一跳 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 问题描述   近来&#xff0c;跳一跳这款小游戏风靡全国&#xff0c;受到不少玩家的喜爱…...

基于Matlab实现多因子选股模型(附上源码+数据)

本文将介绍如何使用MATLAB实现多因子选股模型。我们将使用市盈率和市净率两个因子来进行选股&#xff0c;并通过简单的代码案例来演示该过程。 文章目录 引言简单案例总结源码数据下载 引言 多因子选股模型是一种常用的股票选股方法&#xff0c;通过综合考虑多个因子的信息来…...

【中秋国庆不断更】OpenHarmony多态样式stateStyles使用场景

Styles和Extend仅仅应用于静态页面的样式复用&#xff0c;stateStyles可以依据组件的内部状态的不同&#xff0c;快速设置不同样式。这就是我们本章要介绍的内容stateStyles&#xff08;又称为&#xff1a;多态样式&#xff09;。 概述 stateStyles是属性方法&#xff0c;可以根…...

Qt扩展-QCustomPlot绘图基础概述

QCustomPlot绘图基础概述 一、概述二、改变外观1. Graph 类型2. Axis 坐标轴3. 网格 三、案例1. 简单布局两个图2. 绘图与多个轴和更先进的样式3. 绘制日期和时间数据 四、其他Graph&#xff1a;曲线&#xff0c;条形图&#xff0c;统计框图&#xff0c;… 一、概述 本教程使用…...

二、局域网联机

目录 1.下载资源包 2.配置NetworkManager 3.编写测试UI 1.下载资源包 2.配置NetworkManager &#xff08;1&#xff09;在Assets/Prefabs下创建Network Prefabs List 相应设置如下&#xff1a; &#xff08;2&#xff09; 创建空物体“NetworkManager”并挂载NetworkMan…...

决策树剪枝:解决模型过拟合【决策树、机器学习】

如何通过剪枝解决决策树的过拟合问题 决策树是一种强大的机器学习算法&#xff0c;用于解决分类和回归问题。决策树模型通过树状结构的决策规则来进行预测&#xff0c;但在构建决策树时&#xff0c;常常会出现过拟合的问题&#xff0c;即模型在训练数据上表现出色&#xff0c;…...

Ubuntu部署运行ORB-SLAM2

ORB-SLAM2是特征点法的视觉SLAM集大成者&#xff0c;不夸张地说是必学代码。博主已经多次部署运行与ORB-SLAM2相关的代码&#xff0c;所以对环境和依赖很熟悉&#xff0c;对整个系统也是学习了几个月&#xff0c;一行行代码理解。本次在工控机上部署记录下完整的流程。 ORB-SLA…...

二十,镜面IBL--打印BRDF积分贴图

比起以往&#xff0c;这节应该是最轻松的了&#xff0c; 运行结果如下 代码如下&#xff1a; #include <osg/TextureCubeMap> #include <osg/TexGen> #include <osg/TexEnvCombine> #include <osgUtil/ReflectionMapGenerator> #include <osgDB/Re…...

自动驾驶:未来的道路上的挑战与机遇

自动驾驶&#xff1a;未来的道路上的挑战与机遇 文章目录 引言安全与道路事故的减少交通拥堵的缓解城市规划的变革技术和法律挑战结语 2023星火培训【专项营】Apollo开发者社区布道师倾力打造&#xff0c;包含PnC、新感知等的全新专项课程上线了。理论与实践相结合&#xff0c;…...

Go 语言 iota 的神奇力量

前言 当你深入研究官网库、开源库或者任何一个 Go 项目时&#xff0c;你都会发现 iota 这个神奇的标识符无处不在。它扮演着一种重要的角色&#xff0c;让代码变得更加简洁、清晰&#xff0c;并提高了可读性和可维护性。它的应用范围广泛&#xff0c;从枚举类型到位运算&#…...

前端开发和后端开发的一些建议

前端开发和后端开发是Web开发的两个方向 前端开发主要负责实现用户在浏览器上看到的界面和交互体验&#xff0c;包括HTML、CSS和JavaScript等技术。后端开发主要负责处理服务器端的逻辑和数据&#xff0c;包括数据库操作、服务器配置和接口开发等技术。 前端开发 前端开发需…...

基于 SpringBoot+Vue 的教室人事档案管理系统

1 简介 教师人事档案管理系统利用信息的合理管理&#xff0c;动态的、高效的、安全的实现了教师的各种需求&#xff0c;改变了传统的网上查看方式&#xff0c;使教师可以足不出户的在线查看最适合自己个人档案、奖惩信息、档案变动、培训报名或者新闻资讯。 1、教师后台功能模…...

Lua学习笔记:require非.lua拓展名的文件

前言 本篇在讲什么 Lua的require相关的内容 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449; ♠…...

Python 编程基础 | 第三章-数据类型 | 3.3、浮点数

一、浮点数...

遗传算法 TWVRP 运筹优化调度 混合整数规划 带时间窗多车的物流配送路径优化 贵有贵的道理...

遗传算法 TWVRP 运筹优化调度 混合整数规划 带时间窗多车的物流配送路径优化 贵有贵的道理&#xff0c;代码质量高&#xff0c;有中文注释 只有修改表格中数据即可生成想要的配送路径上周点奶茶发现骑手绕了远路还差点超时&#xff0c;突然就想起之前折腾过的带时间窗多车配送路…...

告别‘阴阳屏’:深入MTK平台PQ底层,教你用代码实现多供应商屏幕色彩统一

MTK平台屏幕色彩统一实战&#xff1a;从Gamma参数调试到自动化加载 当你的项目同时采用三家不同供应商的屏幕模组时&#xff0c;用户滑动屏幕时可能看到三种截然不同的白色——这种"阴阳屏"现象在硬件采购多元化的今天越来越普遍。作为深耕显示领域多年的工程师&…...

手把手拆解:一个QKD系统中的‘诱骗态’光源硬件是怎么搭出来的?

手把手拆解&#xff1a;一个QKD系统中的‘诱骗态’光源硬件是怎么搭出来的&#xff1f; 量子密钥分发&#xff08;QKD&#xff09;技术近年来从实验室走向商业化应用&#xff0c;其中诱骗态光源的设计与实现成为工程落地的核心挑战之一。不同于理论论文中简化的模型&#xff0c…...

5分钟制作Windows启动盘:Rufus免费工具终极指南

5分钟制作Windows启动盘&#xff1a;Rufus免费工具终极指南 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 还在为系统重装而烦恼吗&#xff1f;Rufus作为一款完全免费的USB格式化工具&#xff0…...

Android Gradle - Gradle 自定义插件(Build Script 自定义插件、buildSrc 自定义插件、独立项目自定义插件)

一、Build Script 自定义插件 1、基本介绍插件代码直接写在模块级 build.gradle 文件中逻辑非常简单&#xff0c;且仅在该模块使用2、演示 &#xff08;1&#xff09;具体实现 在模块级 build.gradle 文件中定义插件 class SimpleBuildScriptPlugin implements Plugin<Proje…...

FindSomething:革新性网页智能信息提取工具完全指南

FindSomething&#xff1a;革新性网页智能信息提取工具完全指南 【免费下载链接】FindSomething 基于chrome、firefox插件的被动式信息泄漏检测工具 项目地址: https://gitcode.com/gh_mirrors/fi/FindSomething 在数字时代&#xff0c;网页中隐藏的敏感信息和数据模式往…...

OCLP-Mod:终极指南 - 让老旧Mac免费升级到最新macOS

OCLP-Mod&#xff1a;终极指南 - 让老旧Mac免费升级到最新macOS 【免费下载链接】OCLP-Mod A mod version for OCLP,with more interesting features. 项目地址: https://gitcode.com/gh_mirrors/oc/OCLP-Mod 你是否拥有一台被苹果官方"抛弃"的老旧Mac&#x…...

ai全程护航:让快马智能助手帮你搞定proteus安装与初学难题

最近在折腾Proteus仿真软件时&#xff0c;发现从安装到入门会遇到不少"坑"。好在发现了InsCode(快马)平台的AI辅助功能&#xff0c;整个过程变得轻松多了。这里分享下如何用AI搞定Proteus全流程难题的实践心得。 智能安装诊断 第一次安装Proteus时&#xff0c;遇到许…...

B站Index-AniSora本地部署避坑指南:4张4090显卡实测+常见错误解决

4张RTX 4090实战&#xff1a;Index-AniSora动漫生成模型深度部署手册 当四张RTX 4090显卡同时亮起RGB灯效时&#xff0c;机箱内涌动的不仅是1.2kW的功耗&#xff0c;更是一个能够将二次元幻想转化为动态画面的数字炼金术工坊。B站开源的Index-AniSora模型正在重新定义独立创作者…...

Three.js 3D地图实战:从GeoJSON数据到交互式可视化(附完整代码)

Three.js 3D地图实战&#xff1a;从GeoJSON数据到交互式可视化 当我们需要在网页上展示一个具有真实地理特征的3D地图时&#xff0c;Three.js无疑是最强大的工具之一。它不仅能让地图以立体的形式呈现&#xff0c;还能添加各种交互效果&#xff0c;让数据可视化变得更加生动。本…...