2017-05-21 8 views
0

多くの変数なしで行エディタのリストを作るには?例えば(PyQt5)QLineEditのリストを作成

self.line_1 = QLineEdit(self), self.line_2 = QLineEdit(self), ... , self.line_9000 = QLineEdit(self)のようななめらか)は、私は各要素へのアクセスを取得する機能を持つこの

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()) 
関連する問題