gpt4 book ai didi

python - 如何从 Squish 测试脚本中获取 Qt 对象的方法签名?

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:31 25 4
gpt4 key购买 nike

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

我可以在方法 View 中看到类似 void setParent(QObject*) 的内容 - 方法名称、返回和参数类型。

在 Python 测试脚本的运行时,我可以通过调用获取小部件属性,例如 isActiveWindow -> true

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

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

>>> aWidget.isModal()
0

但是如何获取小部件方法签名列表,就像在 IDE 的方法 View 中一样?我想出的只是

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

当然它只列出了方法名而不是签名,没有声明的参数类型或返回类型。 spy 以某种方式获取签名,我如何在运行时从 Python 获取它们?

最佳答案

为了获得小部件的方法签名,您可以使用它的元对象信息。例如,下面是打印出小部件的所有公共(public)插槽(方法)签名的 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())

关于python - 如何从 Squish 测试脚本中获取 Qt 对象的方法签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20241397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com