2017-05-21 5 views
0

많은 변수없이 라인 편집기 목록을 만드는 방법은 무엇입니까? (self.line_1 = QLineEdit(self), self.line_2 = QLineEdit(self), ... , self.line_9000 = QLineEdit(self) 같은 떨어지게) 예를 들어(PyQt5) QLineEdit 목록 만들기

, 나는 각 요소에 대한 액세스 권한을 얻을 수있는 능력이

list of QLineEdit

창을 만들려고합니다. 간단한주기는 요소에 대한 액세스를 제공하지 않으며 마지막 요소 만 액세스 할 수 있습니다. 내가 어떻게 할 수 있니?

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

을 위젯에 액세스하려면 : 사이클, 그리고 당신은 같이 갈 것 layout.itemAtPosition

를 사용하여 위젯에 액세스 할 수 있습니다 - 당신이 말한대로

답변

1

한 가지 방법은 위젯을 만드는 것입니다 :

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

이제 QLineEdit에 액세스 할 수 있습니다.

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())