The QAxScript 类提供围绕脚本代码的包裹器。 更多...
头: | #include <QAxScript> |
qmake: | QT += axcontainer |
继承: | QObject |
enum | FunctionFlags { FunctionNames, FunctionSignatures } |
QAxScript (const QString & name , QAxScriptManager * manager ) | |
~QAxScript () | |
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 | functions (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 ) |
The QAxScript 类提供围绕脚本代码的包裹器。
每个实例化的 QAxScript 类表示一块特定脚本语言脚本代码。将代码加载进脚本引擎是使用 load ()。可以调用代码中的声明函数是使用 call ().
脚本提供 scriptEngine () 透过信号向应用程序提供反馈。最重要信号是 error () 信号。直接访问 QAxScriptEngine 的提供是透过 scriptEngine () 函数。
警告: 此类不可用于 bcc5.5 编译器。
另请参阅 QAxScriptEngine , QAxScriptManager , QAxBase ,和 ActiveQt 框架 .
此 FunctionFlags 枚举描述函数的自省格式。
常量 | 值 | 描述 |
---|---|---|
QAxScript::FunctionNames
|
0
|
只返回函数名称。 |
QAxScript::FunctionSignatures
|
1
|
返回具有签名的函数。 |
构造 QAxScript 对象称为 name 并注册它采用 QAxScriptManager manager 。通常做到这是通过 QAxScriptManager 类当 加载脚本 .
脚本应始终拥有名称。为允许脚本代码引用应用程序中的对象,管理器是必要的。 manager 拥有对象的所有权。
销毁对象,释放所有分配资源。
调用 function ,传递参数 var1 , var1 , var2 , var3 , var4 , var5 , var6 , var7 and var8 作为自变量并返回由函数返回的值,或无效 QVariant 若函数不返回值 (或当函数调用失败时)。
见 QAxScriptManager::call () 了解如何调用脚本函数的更多有关信息。
这是重载函数。
调用 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 在此类中是重载。要使用函数指针句法连接到此信号,必须在静态铸造中指定信号类型,如此范例所示:
connect(axScript, static_cast<void(QAxScript::*)()>(&QAxScript::finished), [=](){ /* ... */ });
[signal]
void
QAxScript::
finished
(const
QVariant
&
result
)
这是重载函数。
result 包含脚本结果。这将是无效 QVariant 若脚本没有返回值。
注意: 信号 finished 在此类中是重载。要使用函数指针句法连接到此信号,必须在静态铸造中指定信号类型,如此范例所示:
connect(axScript, static_cast<void(QAxScript::*)(const QVariant &)>(&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 在此类中是重载。要使用函数指针句法连接到此信号,必须在静态铸造中指定信号类型,如此范例所示:
connect(axScript, static_cast<void(QAxScript::*)(int, const QString &, const QString &, const QString &)>(&QAxScript::finished), [=](int code, const QString &source, const QString &description, const QString &help){ /* ... */ });
返回此脚本中所有函数的列表,若各自脚本引擎支持自省;否则返回空列表。函数按完整原型提供 (或按名称提供),从属值对于 flags .
另请参阅 QAxScriptEngine::hasIntrospection ().
加载脚本源 code 编写按语言 语言 进脚本引擎。返回 true 若 code 成功进入脚本引擎;否则返回 false。
若
语言
为空 (默认),将启发式确定它。若
code
包含字符串
End Sub
会将它解释成 VBScript,否则解释成 JScript。可以注册其它脚本语言使用
QAxScriptManager::registerEngine
().
只可以调用此函数一次对于每个 QAxScript 对象,会自动完成当使用 QAxScriptManager::load ().
返回脚本代码,返回 null 字符串若代码尚未被加载。
另请参阅 load ().
返回脚本引擎指针。
可以使用返回对象将信号连接到脚本函数,或直接访问脚本引擎。
返回脚本的名称。
[signal]
void
QAxScript::
stateChanged
(
int
state
)
发射此信号,当脚本引擎改变状态时。
state
可以是任意值在
QAxScriptEngine::State
枚举。