QAxScript 类

The QAxScript class provides a wrapper around script code. 更多...

头: #include <QAxScript>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
继承: QObject

公共类型

enum FunctionFlags { FunctionNames, FunctionSignatures }

公共函数

QAxScript (const QString & name , QAxScriptManager * manager )
virtual ~QAxScript () override
QVariant call (const QString & function , const QVariant & var1 = QVariant(), const QVariant & var2 = QVariant(), const QVariant & var3 = QVariant(), const QVariant & var4 = QVariant(), const QVariant & var5 = QVariant(), const QVariant & var6 = QVariant(), const QVariant & var7 = QVariant(), const QVariant & var8 = QVariant())
QVariant call (const QString & function , QList<QVariant> & arguments )
QStringList 函数 (QAxScript::FunctionFlags flags = FunctionNames) const
bool load (const QString & code , const QString & 语言 = QString())
QString scriptCode () const
QAxScriptEngine * scriptEngine () const
QString scriptName () const

信号

void entered ()
void error (int code , const QString & description , int sourcePosition , const QString & sourceText )
void finished ()
void finished (const QVariant & result )
void finished (int code , const QString & source , const QString & description , const QString & help )
void stateChanged (int state )

详细描述

Every instance of the QAxScript class represents a piece of scripting code in a particular scripting language. The code is loaded into the script engine using load ()。可以调用代码中的声明函数是使用 call ().

脚本提供 scriptEngine () 透过信号向应用程序提供反馈。最重要信号是 error () 信号。直接访问 QAxScriptEngine 的提供是透过 scriptEngine () 函数。

警告: 此类不可用于 bcc5.5 编译器。

另请参阅 QAxScriptEngine , QAxScriptManager , QAxBase ,和 ActiveQt 框架 .

成员类型文档编制

enum QAxScript:: FunctionFlags

此 FunctionFlags 枚举描述函数的自省格式。

常量 描述
QAxScript::FunctionNames 0 只返回函数名称。
QAxScript::FunctionSignatures 1 返回具有签名的函数。

成员函数文档编制

QAxScript:: QAxScript (const QString & name , QAxScriptManager * manager )

Constructs a QAxScript object called name 并注册它采用 QAxScriptManager manager 。通常做到这是通过 QAxScriptManager 类当 加载脚本 .

脚本应始终拥有名称。为允许脚本代码引用应用程序中的对象,管理器是必要的。 manager 拥有对象的所有权。

[override virtual noexcept] QAxScript:: ~QAxScript ()

销毁对象,释放所有分配资源。

QVariant QAxScript:: call (const QString & function , const QVariant & var1 = QVariant(), const QVariant & var2 = QVariant(), const QVariant & var3 = QVariant(), const QVariant & var4 = QVariant(), const QVariant & var5 = QVariant(), const QVariant & var6 = QVariant(), const QVariant & var7 = QVariant(), const QVariant & var8 = QVariant())

调用 function ,传递参数 var1 , var1 , var2 , var3 , var4 , var5 , var6 , var7 and var8 作为自变量并返回由函数返回的值,或无效 QVariant 若函数不返回值 (或当函数调用失败时)。

QAxScriptManager::call () 了解如何调用脚本函数的更多有关信息。

QVariant QAxScript:: call (const QString & function , QList < QVariant > & arguments )

这是重载函数。

调用 function 传递 arguments 作为参数,并返回结果。返回当脚本执行完成时。

QAxScriptManager::call () 了解如何调用脚本函数的更多有关信息。

[signal] void QAxScript:: entered ()

此信号被发射,当脚本引擎已开始执行代码时。

[signal] void QAxScript:: error ( int code , const QString & description , int sourcePosition , const QString & sourceText )

此信号被发射,当运行脚本时出现执行错误。

code , description , sourcePosition and sourceText 包含执行错误的有关信息。

[signal] void QAxScript:: finished ()

此信号被发射,当脚本引擎执行完成代码时。

注意: 信号 finished 在此类中被重载。通过使用函数指针句法连接到此信号,Qt 提供用于获得如此范例展示的函数指针的方便帮助程序:

connect(axScript, QOverload<>::of(&QAxScript::finished),
    [=](){ /* ... */ });
					

[signal] void QAxScript:: finished (const QVariant & result )

这是重载函数。

result 包含脚本结果。这将是无效 QVariant 若脚本没有返回值。

注意: 信号 finished 在此类中被重载。通过使用函数指针句法连接到此信号,Qt 提供用于获得如此范例展示的函数指针的方便帮助程序:

connect(axScript, QOverload<const QVariant &>::of(&QAxScript::finished),
    [=](const QVariant &result){ /* ... */ });
					

[signal] void QAxScript:: finished ( int code , const QString & source , const QString & description , const QString & help )

这是重载函数。

code , source , description and help 包含脚本终止时的异常信息。

注意: 信号 finished 在此类中被重载。通过使用函数指针句法连接到此信号,Qt 提供用于获得如此范例展示的函数指针的方便帮助程序:

connect(axScript, QOverload<int, const QString &, const QString &, const QString &>::of(&QAxScript::finished),
    [=](int code, const QString &source, const QString &description, const QString &help){ /* ... */ });
					

QStringList QAxScript:: 函数 ( QAxScript::FunctionFlags flags = FunctionNames) const

返回此脚本中所有函数的列表,若各自脚本引擎支持自省;否则返回空列表。函数按完整原型提供 (或按名称提供),从属值对于 flags .

另请参阅 QAxScriptEngine::hasIntrospection ().

bool QAxScript:: load (const QString & code , const QString & 语言 = QString())

加载脚本源 code 编写按语言 语言 进脚本引擎。返回 true 若 code 成功进入脚本引擎;否则返回 false。

语言 为空 (默认),将启发式确定它。若 code 包含字符串 End Sub 会将它解释成 VBScript,否则解释成 JScript。可以注册其它脚本语言使用 QAxScriptManager::registerEngine ().

只可以调用此函数一次对于每个 QAxScript 对象,会自动完成当使用 QAxScriptManager::load ().

QString QAxScript:: scriptCode () const

返回脚本代码,返回 null 字符串若代码尚未被加载。

另请参阅 load ().

QAxScriptEngine *QAxScript:: scriptEngine () const

返回脚本引擎指针。

可以使用返回对象将信号连接到脚本函数,或直接访问脚本引擎。

QString QAxScript:: scriptName () const

返回脚本的名称。

[signal] void QAxScript:: stateChanged ( int state )

发射此信号,当脚本引擎改变状态时。 state 可以是任意值在 QAxScriptEngine::State 枚举。