這里需要在創建組件時使用 setObjectName() 為其添加 objectName 屬性,再通過 findChild() 或者 findChildren() 函數來查找。
舉個栗子,批量創建10個 LineEdit 並為其設置 name :
1 # 批量創建十個 LineEdit :
2 for i in range(10):
3 line = QLineEdit()
4 # 為每個 LineEdit 命名:
5 line.setObjectName(u'line_' + str(i))
6 grid.addWidget(line, i, 0)
可以通過 findChild(QLineEdit, "line_1") 來獲得其中一個進行操作。
1 # 為每個 LineEdit 設置文本:
2 for i in range(10):
3 # 通過 objectName 查找具體的某個 LineEdit :
4 self.findChild(QLineEdit, u'line_'+str(i)).setText('No.' + str(i+1) + u' QLineEdit')
效果如下:
也可以通過 findChildren(QLineEdit) 來獲得當前程序里的所有 LineEdit :
1 print(self.findChildren(QLineEdit))
顯示為: