我想通过 QApplication 中的 objectname 字符串名称查找任何对象
就像是
QApplication.instance().findByClassName("codeEditor")
它应该返回一个具有这个类名的小部件列表,如果有多个,我可以迭代它
[QPushButton (QPushButton at: 0x0000008EA3B3DD80), QWidget (QWidget at: 0x0000008EA3F33F40)]
我读过这个,但它需要一个对象,我想要类似的东西*
这是我想出的测试:
def findWidget(name):
name = name.lower()
widgets = self.topLevelWidgets()
widgets = widgets + self.allWidgets()
ret = dict()
c = 0
for x in widgets:
c += 1
if name in x.objectName.lower() or name in str(x.__class__).lower():
ret["class:"+str(x.__class__)+str(c)] = "obj:"+x.objectName;continue
if hasattr(x, "text"):
if name in x.text.lower():
ret["class:"+str(x.__class__)+str(c)] = "obj:"+x.objectName
return ret
它甚至找不到明显存在的“InfoFrame”:
>>> widget("info")
{}