Python 如何使用Squish查找qml元素的id属性?

Python 如何使用Squish查找qml元素的id属性?,python,qt,qml,squish,Python,Qt,Qml,Squish,我被分配了自动化qml程序的任务。 我对python和Squish都是新手。 我试图找到一种方法来获取文本元素的id属性 例如: Text{ id:testLabel text:"Hello" } 因此,在Squish中捕获我获得的对象(通过间谍) 但是我想把它作为 waitForObject(":GAMES.testLabel_Text") 这有可能实现吗?如果没有,我还有什么办法可以实现呢 注意:我需要比较不同语言的文本诊断 我认为你把“实名”和“符号名”混为一谈了。我建议你去看看官方网

我被分配了自动化qml程序的任务。 我对python和Squish都是新手。 我试图找到一种方法来获取文本元素的id属性 例如:

Text{
id:testLabel
text:"Hello"
}
因此,在Squish中捕获我获得的对象(通过间谍)

但是我想把它作为

waitForObject(":GAMES.testLabel_Text")
这有可能实现吗?如果没有,我还有什么办法可以实现呢


注意:我需要比较不同语言的文本

诊断

我认为你把“实名”和“符号名”混为一谈了。我建议你去看看官方网站,但我的理解是,压扁的符号名(以冒号开头的名称)本质上等同于变量名。它们是用于在objects.map中查找标识符的键

objects.map包括符号名和Squish所指的“真实名称”。真实名称是一种匹配模式,可用于查找Qt对象。例如,您的objects.map文件中可能有如下行:

:GAMES.Hello_Text    {name='Hello_Text' type='QLineEdit' visible='1' window=':GAMES'}
:GAMES.testLabel_Text    {name='testLabel_Text' type='QLineEdit' visible='1' window=':GAMES'}
如您所见,“:GAMES.Hello_Text”和“:GAMES.testLabel_Text”都是“:GAMES”窗口中的QLineEdit字段(本身是一个符号名,在objects.map的其他地方有一个真正的规范)

潜在解决方案

要获得全面帮助,我建议发布objects.map中的相关条目。相关条目将是您感兴趣的对象的条目,可能还有它们的直系父对象

需要注意的是,我不确定您到底需要什么,如果您要在“:GAMES”符号名指定的对象中查找任意和编程确定的元素,这里有三种方法

1。查找父对象并检查其属性

2.查找父对象的属性

请注意,在本例中,“testLabel_Text”是一个任意文本字符串,它引用由“:GAMES”符号名指定的对象属性。您可以将
waitForObjectAttribute()
视为类似于Python内置的
getattr()

3.使用真实姓名查找所需信息


谢谢,我们终于能够演示了,我们得到了批准。谢谢你的帮助。
:GAMES.Hello_Text    {name='Hello_Text' type='QLineEdit' visible='1' window=':GAMES'}
:GAMES.testLabel_Text    {name='testLabel_Text' type='QLineEdit' visible='1' window=':GAMES'}
games = waitForObject(":GAMES")
mytext = games.testLabel_Text
mytext = waitForObjectAttribute(":GAMES", "testLabel_Text") 
mytext = waitForObject("{name='testLabel_Text' type='QLineEdit' visible='1' window=':GAMES'}")