ScriptEngine 类

class QInstaller::ScriptEngine

ScriptEngine 类用于准备和运行组件脚本。更多...

头文件 #include <ScriptEngine>
继承 QObject

公共函数

ScriptEngine(QInstaller::PackageManagerCore *core = 0)
voidaddToGlobalObject(QObject *object)
QJSValuecallScriptMethod(const QJSValue &scriptContext, const QString &methodName, const QJSValueList &arguments = QJSValueList())
QJSValueevaluate(const QString &program, const QString &fileName = QString(), int lineNumber = 1)
QJSValueglobalObject() const
QJSValueloadInContext(const QString &context, const QString &fileName, const QString &scriptInjection = QString())
QJSValuenewArray(uint length = 0)
QJSValuenewQObject(QObject *object, bool qtScriptCompat = true)
voidremoveFromGlobalObject(QObject *object)

详细描述

成员函数文档

[显式] ScriptEngine::ScriptEngine(QInstaller::PackageManagerCore *core = 0)

使用 core 作为父对象构造脚本引擎。

void ScriptEngine::addToGlobalObject(QObject *object)

在引擎中注册 QObject object,使其在全球范围内可通过其对象名称访问。

QJSValue ScriptEngine::callScriptMethod(const QJSValue &scriptContext, const QString &methodName, const QJSValueList &arguments = QJSValueList())

尝试在脚本中调用由 methodName 指定的方法,并使用 arguments 指定的参数,返回结果。如果方法不存在或不可调用,则返回未定义的结果。如果方法调用成功但返回值仍然是未定义的,则返回 null 值。如果方法调用抛出异常,则其字符串表示形式作为 Error 异常抛出。

注意:如果 scriptContext 是同一方法,不会调用该方法,以避免无限递归。

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

使用lineNumber作为基线号评估program,并返回评估结果。fileName用于错误报告。

QJSValue ScriptEngine::globalObject() const

返回一个全局对象。

QJSValue ScriptEngine::loadInContext(const QString &context, const QString &fileName, const QString &scriptInjection = QString())

将脚本加载到指定的context中,在ScriptEnginefileName内部。

安装程序及其所有组件以及其他有用的内容都导出到脚本中。有关更多信息,请参阅组件脚本。当fileName中的脚本无法打开或QScriptEngine无法评估脚本时,将抛出错误。

TODO:文档scriptInjection

QJSValue ScriptEngine::newArray(uint length = 0)

创建一个具有指定length的类Array的JavaScript对象。

QJSValue ScriptEngine::newQObject(QObject *object, bool qtScriptCompat = true)

创建一个包含给定的QObject object的JavaScript对象。

object的信号和槽,属性和子项作为创建的QJSValue的属性使用。如果qtScriptCompat设置为true(默认),则添加了来自旧版QtScript模块的一些辅助方法和属性

  • findChild(),findChildren()递归地搜索具有给定对象名的子对象。
  • 直接子对象以其各自的对象名作为属性下的属性进行访问。

void ScriptEngine::removeFromGlobalObject(QObject *object)

从全局对象中删除object名称。

©2021 Qt公司有限公司。此处包含的文档贡献是各自所有者的版权。所提供的文档是根据由自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt公司,Qt及其相关标志是芬兰以及/或其他国家的Qt公司有限的责任商标。所有其他商标均为其各自所有者的财产。