The QAxScriptManager 类提供应用程序对象和脚本代码之间的桥梁。 更多...
头: | #include <QAxScriptManager> |
qmake: | QT += axcontainer |
继承: | QObject |
QAxScriptManager (QObject * parent = Q_NULLPTR) | |
~QAxScriptManager () | |
void | addObject (QAxBase * object ) |
void | addObject (QObject * object ) |
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 (QAxScript::FunctionFlags flags = QAxScript::FunctionNames) const |
QAxScript * | load (const QString & code , const QString & name , const QString & 语言 ) |
QAxScript * | load (const QString & file , const QString & name ) |
QAxScript * | script (const QString & name ) const |
QStringList | scriptNames () const |
void | error (QAxScript * script , int code , const QString & description , int sourcePosition , const QString & sourceText ) |
bool | registerEngine (const QString & name , const QString & extension , const QString & code = QString()) |
QString | scriptFileFilter () |
The QAxScriptManager 类提供应用程序对象和脚本代码之间的桥梁。
The QAxScriptManager 充当在 Qt 应用程序嵌入 COM 对象之间的桥梁透过 QAxObject or QAxWidget ,及透过 Windows Script 技术可用的脚本语言,通常是 JScript 和 VBScript。
创建一个 QAxScriptManager 为应用程序中的每个单独文档,并添加需要访问脚本的 COM (组件对象模型) 对象使用 addObject ()。然后 load () 脚本源代码并援引函数使用 call ().
警告: 此类不可用于 bcc5.5 编译器。
另请参阅 QAxScript , QAxScriptEngine , QAxBase ,和 ActiveQt 框架 .
创建 QAxScriptManager 对象。 parent 被传递给 QObject 构造函数。
通常创建一个 QAxScriptManager 为应用程序中的每个文档。
销毁对象,释放所有分配资源。
添加 object 到管理器。由此管理器处理的脚本可以访问代码中的对象,使用对象的 objectName 特性。
必须添加所有必要对象,在加载任何脚本之前。
这是重载函数。
添加一般 COM (组件对象模型) 包裹器为 object 到管理器。 object 必须被暴露成 COM 对象使用功能提供通过 QAxServer 模块。使用此函数的应用程序必须链接到 qaxserver 库。
调用 function ,传递参数 var1 , var1 , var2 , var3 , var4 , var5 , var6 , var7 and var8 作为自变量并返回由函数返回的值,或无效 QVariant 若函数不返回值 (或当函数调用失败时)。调用返回,当脚本执行完成时。
大多数脚本引擎仅支持的参数类型为 const QVariant &,例如,要调用 JavaScript 函数
function setNumber(number)
{
n = number;
}
使用
QValueList args; args << 5; script->call("setNumber(const QVariant&)", args);
就像 dynamicCall 参数可以被直接嵌入函数字符串中。
script->call("setNumber(5)");
不管怎样,这更慢。
不支持自省由脚本引擎提供的函数不可用,且必须直接被调用使用 QAxScript::call () 在各个 script 对象。
注意,调用此函数会比使用 call() 显著更慢在各个 QAxScript 直接。
这是重载函数。
调用 function 传递 arguments 作为参数,并返回结果。返回当脚本执行完成时。
[signal]
void
QAxScriptManager::
error
(
QAxScript
*
script
,
int
code
, const
QString
&
description
,
int
sourcePosition
, const
QString
&
sourceText
)
此信号被发射,出现执行错误当运行 script .
code , description , sourcePosition and sourceText 包含执行错误的有关信息。
警告: 不要删除 script 在连接到此信号的槽中。使用 deleteLater () 代替。
返回具有所有可用函数的列表。不支持自省由脚本引擎提供的函数不在列表中。函数按完整原型提供 (或按名称提供),从属值对于 flags .
加载脚本源 code 使用脚本引擎对于 语言 。稍后可以引用脚本,以使用其 name 不应为空。
函数返回指针指向脚本为给定 code 若 code 加载成功;否则它返回 0。
若 语言 为空,将启发式确定它。若 code 包含字符串 End Sub 会将它解释成 VBScript,否则解释成 JScript。可以注册其它脚本语言使用 registerEngine ().
必须添加所有必要对象 (使用 addObject ()) before 加载任何脚本。若 code 声明已经可用的函数 (无论按哪种语言),将重载第一个函数且不再可以被调用凭借 call ();但它仍然是可用的通过调用其 script 直接。
另请参阅 addObject (), scriptNames (),和 functions ().
这是重载函数。
加载源代码从 file 。稍后可以引用脚本,以使用其 name 不应为空。
函数返回的指针指向脚本引擎对于代码在 file if file 加载成功;否则它返回 0。
所用脚本引擎由文件扩展名确定。默认情况下,.js 文件被解释成 JScript 文件,而 .vbs 和 .dsm 文件被解释成 VBScript。可以注册其它脚本引擎使用 registerEngine ().
[static]
bool
QAxScriptManager::
registerEngine
(const
QString
&
name
, const
QString
&
extension
, const
QString
&
code
= QString())
注册脚本引擎称为 name 并返回 true 若找到引擎;否则什么都不做并返回 false。
将使用脚本引擎,当加载文件具有给定 extension ,或当加载的源代码包含字符串 code .
返回脚本称为 name .
可以使用返回指针以直接调用函数透过 QAxScript::call (),以直接访问脚本引擎,或删除并因此卸载脚本。
[static]
QString
QAxScriptManager::
scriptFileFilter
()
返回列出所有支持脚本语言的文件过滤器。此过滤器字符串是方便的为用于 QFileDialog .
返回具有所有脚本名称的列表。