PyQt QLineEdit对象的集合
问题描述:
PyQt有一些方法来获取所有QLineEdit对象的集合吗?PyQt QLineEdit对象的集合
我想添加一个重置按钮,将窗体上的所有QLineEdit中的所有文本都清空,所以我正在寻找一种方法来遍历所有QLineEdit对象,而不是将它们全部列出在我将要连接的重置函数中到重置按钮。
谢谢。
答
如果所有线路的编辑有一个家长,你可以使用:
for child in parent.findChildren(QtGui.QLineEdit):
child.clear()
或者可能:
for widget in qApp.allWidgets():
if isinstance(widget, QtGui.QLineEdit):
widget.clear()
+0
第二个正是我所需要的。谢谢。 – TimothyAWiseman
为什么不存储它们在'dict'或'list'开始用? – Avaris
虽然我可能会这样做,但是最终都会列出所有这些列表的工作以及将它们全部列出的脆弱性(如果我重命名,删除或添加字段,那么我还有一个地方可以更新)。以编程方式获取列表应该会生成更短,更易维护的代码。 – TimothyAWiseman
其实我说的是用dict而不是变量,除了变量之外不是字典。更像'self.edits [“some_name”] = QtGui.QLineEdit()'而不是'self.some_name = QtGui.QLineEdit()'。这应该在逻辑上引入非常小的变化,如果有的话。 – Avaris