我的目标是将所有QLineEdits和QSpinBox的值分配给字典对象,例如:
editable_objects = {
"lineEdit_1" : "Value_1",
"QSpinBox_1" : "1234"
}
是否有获取这些对象列表的函数?
此操作的目的是创建一个JSON数据文件以加载,保存设置以及记录报告的所有设置数据。
答案 0 :(得分:0)
答案是使用findChildren()方法。
假设您的GUI位于GUI的典型类对象中
您可以调用self.findChildren(QObject),在这种情况下,QObject将是您要查找的对象的类型。
如果要查找QSpinBox对象,则将调用self.findChildren(QSpinBox)。这将返回一个生成器对象,然后将其循环。
下一步-有了对象后,我们如何获得对象名称?
children = self.findChildren(QSpinBox)
for child in children:
print(child.objectName())
我们现在正在使用方法objectName()访问每个对象“子对象”,该方法将返回在QtDesigner中设置的名称,例如spinBox_1,spinBox_2等。
然后可以扩展它以获取我们的值,例如child.value()。