(PyQt5)创建QLineEdit列表

时间:2017-05-21 11:49:43

标签: python qt pyqt qlineedit

如何制作没有多个变量的行编辑器列表? (像self.line_1 = QLineEdit(self), self.line_2 = QLineEdit(self), ... , self.line_9000 = QLineEdit(self)

例如,我想创建此

list of QLineEdit

窗口,可以访问每个元素。 一个简单的循环不能提供对每个元素的访问,只能持续访问。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

一种方法是按照你的说法制作小部件 - 循环, 您可以使用layout.itemAtPosition

访问小部件

它会是这样的:

layout = QVBoxLayout()
for i in range(list_length):
    line_edit = QLineEdit(self)
    layout.addWidget(line_edit)

访问小部件:

def access_widget(int):
    item = layout.itemAtPosition(int)
    line_edit = item.widget()
    return line_edit

现在您可以访问指定的QLineEdit。

答案 1 :(得分:0)

layout = QFormLayout()    
self.alphabet_line_edits = dict.fromkeys(['а', 'б', 'в', 'г'])
for letter in self.alphabet_line_edits:
    line_edit = QLineEdit()
    layout.addRow(letter, line_edit)
    self.alphabet_line_edits[letter] = line_edit

def button_clicked(self):
    print(self.alphabet_line_edit['б'].text())