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
#include
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代码,该代码使用我们定义的函数将两个数字相加,并将结果打印出来。