等效脚本API
Squish 为其支持的所有脚本语言提供了相同的根本性 API,并在需要时添加了一些特定语言的额外功能,例如在 JavaScript 中处理文件,因为标准语言没有提供。在本节中,我们将讨论如何使用 API,注意因脚本语言本身的差异而导致的用法差异。
差异在特定语言的注释中描述。例如,Python 注释展示了如何访问 Python 内置的 type
函数而不是 Squish 的 type(objectOrName, text) 函数;JavaScript 注释和扩展 API描述了 Squish 为文件处理、操作系统交互、使用 XML 和 SQL 等提供的新增 API。
示例类
在审查差异之前,我们先看看在下表中使用的示例类。
对于非 macOS 平台,下表使用以下示例 C++ 类
class C { public: C(); C(const char *s); void doA(bool b); static void doB(); int p; ... };
对于 macOS,下表使用以下 Objective-C 类
@interface C : NSObject { ... } - (void)doA; - (void)doB:(BOOL)b; + (void)doC; + (void)doD:(BOOL)b; - (int)p; - (void)setP:(int)newP; ... @end
此外,假设存在一个名为 c
的类型为 C
的对象。
表中某些调用中的下划线与 Objective-C 相关。有关详细信息,请参阅函数和属性(macOS)。
等效脚本函数
下表提供了对创建对象、获取和设置属性、执行比较等最基本任务对应的等效脚本函数的简要概述。尽管执行的操作相同且使用相同的 API,但由于 Squish 支持的脚本语言的语法和结构差异,实际示例代码会有所不同。
Squish API 文档包含示例(几乎总是所有支持的脚本语言)以及到手册中其他示例的链接。如果您的脚本语言中没有示例,请使用下表将其中一种语言的示例转换为所需的语言。
Python
功能 | Python |
---|---|
创建默认对象 | c = C() |
使用参数创建对象 | c = C("apple") |
获取属性 p 的值 | x = c.p |
设置属性 p 的值 | c.p = 10 |
调用成员函数 | c.doA(True) |
验证相等性 | test.compare(c.p, 2) |
将类似字符串的对象与原生字符串进行比较 | s == "Orange" |
转换为原生字符串 | s = str(val) # or s = unicode(val) |
发送按键 | type(":lineEdit_Widget", "Orange") |
原生布尔值 | True, False |
JavaScript
功能 | JavaScript |
---|---|
创建默认对象 | var c = new C(); |
使用参数创建对象 | var c = new C("apple"); |
获取属性 p 的值 | var x = c.p; |
设置属性 p 的值 | c.p = 10; |
调用成员函数 | c.doA(true); |
验证相等性 | test.compare(c.p, 2); |
将类似字符串的对象与原生字符串进行比较 | s == "Orange" |
转换为原生字符串 | var s = String(val); |
发送按键 | type(":lineEdit_Widget", "Orange"); |
原生布尔值 | true, false |
Perl
功能 | Perl |
---|---|
创建默认对象 | my $c = new C(); # new-style my $c = C->new(); # old-style |
使用参数创建对象 | my $c = new C("apple"); # new-style my $c = C->new("apple"); # old-style |
获取属性 p 的值 | my $x = $c->p; |
设置属性 p 的值 | $c->p(10); |
调用成员函数 | $c->doA(1); |
验证相等性 | test::compare($c->p, 2); |
将类似字符串的对象与原生字符串进行比较 | $s eq "Orange" |
转换为原生字符串 | my $s = "" . $val; |
发送按键 | type(":lineEdit_Widget", "Orange"); |
原生布尔值 | 1, 0 |
Ruby
功能 | Ruby |
---|---|
创建默认对象 | c = C.new |
使用参数创建对象 | c = C.new("apple") |
获取属性 p 的值 | x = c.p |
设置属性 p 的值 | c.p = 10 |
调用成员函数 | c.doA(true) |
验证相等性 | Test.compare(c.p, 2) |
将类似字符串的对象与原生字符串进行比较 | s == "Orange" |
转换为原生字符串 | s = String(val) |
发送按键 | type(":lineEdit_Widget", "Orange") |
原生布尔值 | true, false |
Tcl
功能 | Tcl |
---|---|
创建默认对象 | set c [construct C] |
使用参数创建对象 | set c [construct C "apple"] |
获取属性 p 的值 | 设置 x [属性获取 $c p] |
设置属性 p 的值 | 属性设置 $c p 10 |
调用成员函数 | 调用 $c doA true |
验证相等性 | 测试比较 [属性获取 $c p] 2 |
将类似字符串的对象与原生字符串进行比较 | 比较 $s "Orange" |
转换为原生字符串 | 将 s 设置为 [转换为字符串 $val] |
发送按键 | 调用类型 ":lineEdit_Widget" "Orange" |
原生布尔值 | true, false |
macOS 绑定
对于 macOS,以下是与 Objective-C 对象相关的特定绑定
功能 | Python | JavaScript | Perl | Ruby | Tcl |
---|---|---|---|---|---|
调用成员函数(无参数) | c.doA() | c.doA(); | $c->doA(); | c.doA() | 调用 $c doA |
调用成员函数(带参数) | c.doB_(True) | c.doB_(true); | $c->doB_(1); | c.doB_(true) | 调用 $c doB_ true |
调用类(静态)函数(无参数) | C.doC() | C.doC(); | C::doC(); | C.doC() | 调用 C doC |
调用类(静态)函数(带参数) | C.doD_(True) | C.doD_(true); | C::doD_(1); | C.doD_(true) | 调用 C doD_ true |
©2024 Qt 公司有限公司。本文档的贡献包含各自所有者的版权。
本文档受免费软件基金会发布的GNU自由文档许可协议版本1.3的许可。
Qt 及其标志是芬兰及其它国家/地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。