Python 如何从Squish测试脚本中获取Qt对象的方法签名?
我正在使用Squish框架编写Qt应用程序的自动测试脚本。SquishIDE中的Spy可以查看由“Spy picker”选择的Qt小部件的属性和方法。在Spy透视图中,启用窗口->显示视图->方法 我可以在方法视图中看到类似于Python 如何从Squish测试脚本中获取Qt对象的方法签名?,python,qt,squish,Python,Qt,Squish,我正在使用Squish框架编写Qt应用程序的自动测试脚本。SquishIDE中的Spy可以查看由“Spy picker”选择的Qt小部件的属性和方法。在Spy透视图中,启用窗口->显示视图->方法 我可以在方法视图中看到类似于void setParent(QObject*)-方法名称、返回和参数类型的内容 在Python测试脚本的运行时,我可以通过调用 aWidget = waitForObject("...") aMap = object.properties( aWidget ) Pyth
void setParent(QObject*)
-方法名称、返回和参数类型的内容
在Python测试脚本的运行时,我可以通过调用
aWidget = waitForObject("...")
aMap = object.properties( aWidget )
Python中提供了小部件方法,例如,我可以调用:
>>> aWidget.isModal()
0
但如何获得小部件方法签名列表,如IDE中的方法视图?我想到的只是
>>> dir(this)
['BackButtonPressed', 'ButtonPressed', ...
但当然,它只列出方法名,不列出签名,没有声明的参数类型或返回类型。Spy以某种方式获取签名,如何在运行时从Python获取签名?为了获取小部件的方法签名,可以使用其元对象信息。例如,下面是打印小部件的所有公共插槽(方法)签名的Python脚本(Squish测试脚本):
widget = waitForObject(':Test Widget')
metaObject = widget.metaObject();
methodCount = metaObject.methodCount()
for x in range(0, methodCount):
method = metaObject.method(x)
test.log(method.signature())