2011-11-17 193 views
1

PyQt有一些方法來獲取所有QLineEdit對象的集合嗎?PyQt QLineEdit對象的集合

我想添加一個重置按鈕,將窗體上的所有QLineEdit中的所有文本都清空,所以我正在尋找一種方法來遍歷所有QLineEdit對象,而不是將它們全部列出在我將要連接的重置函數中到重置按鈕。

謝謝。

+0

爲什麼不存儲它們在'dict'或'list'開始用? – Avaris

+0

雖然我可能會這樣做,但是最終都會列出所有這些列表的工作以及將它們全部列出的脆弱性(如果我重命名,刪除或添加字段,那麼我還有一個地方可以更新)。以編程方式獲取列表應該會生成更短,更易維護的代碼。 – TimothyAWiseman

+0

其實我說的是用dict而不是變量,除了變量之外不是字典。更像'self.edits [「some_name」] = QtGui.QLineEdit()'而不是'self.some_name = QtGui.QLineEdit()'。這應該在邏輯上引入非常小的變化,如果有的話。 – Avaris

回答

4

如果所有線路的編輯有一個家長,你可以使用:

for child in parent.findChildren(QtGui.QLineEdit): 
    child.clear() 

或者可能:

for widget in qApp.allWidgets(): 
    if isinstance(widget, QtGui.QLineEdit): 
     widget.clear() 
+0

第二個正是我所需要的。謝謝。 – TimothyAWiseman