Python 如何使用Squish查找qml元素的id属性?
我被分配了自动化qml程序的任务。 我对python和Squish都是新手。 我试图找到一种方法来获取文本元素的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") 这有可能实现吗?如果没有,我还有什么办法可以实现呢 注意:我需要比较不同语言的文本诊断 我认为你把“实名”和“符号名”混为一谈了。我建议你去看看官方网
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'}")