如何制作没有多个变量的行编辑器列表? (像self.line_1 = QLineEdit(self), self.line_2 = QLineEdit(self), ... , self.line_9000 = QLineEdit(self)
)
例如,我想创建此
窗口,可以访问每个元素。 一个简单的循环不能提供对每个元素的访问,只能持续访问。我怎么能这样做?
答案 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())