如何从挤压测试脚本中获取Qt对象的方法签名?

2024-05-16 08:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Squish框架编写Qt应用程序的自动测试脚本。SquishIDE中的Spy可以查看由“Spy picker”选择的Qt小部件的属性和方法。在Spy透视图中,启用窗口->显示视图->方法。在

我可以在Methods视图中看到类似void setParent(QObject*)-方法名、返回和参数类型。在

在Python测试脚本的运行时,我可以通过调用

aWidget = waitForObject("...")
aMap = object.properties( aWidget )

小部件方法可从Python获得,例如,我可以调用:

^{pr2}$

但如何获得widget方法签名的列表,比如在IDE的methods视图中呢?我想到的就是

>>> dir(this)
['BackButtonPressed', 'ButtonPressed', ...

当然,它只列出方法名而不是签名,没有声明的参数类型或返回类型。Spy不知怎的得到了签名,我如何在运行时从Python得到它们?在


Tags: 方法脚本框架视图应用程序类型参数部件
1条回答
网友
1楼 · 发布于 2024-05-16 08:28:07

为了获得小部件的方法签名,您可以使用它的元对象信息。例如,下面是Python脚本(压扁测试脚本),它打印出widget的所有公共插槽(方法)签名:

widget = waitForObject(':Test Widget')

metaObject = widget.metaObject();
methodCount =  metaObject.methodCount()

for x in range(0, methodCount):
    method = metaObject.method(x)
    test.log(method.signature())

相关问题 更多 >