Сделать цикл по QLineEdit и получить данные в список

Подскажите как можно выхватить данные строк, которые находятся внутри класса.
Имеется много полей QLineEdit и нужно получить из них данные в список.

В примере кода нужно циклом (?) пробежаться по объектам le902, le903, le904 и в итоге должен получиться список с данными [16, 17, 18].

 self.le902 = QtWidgets.QLineEdit(self.gridLayoutWidget_2)
 self.le902.setText("16")
 self.le902.setObjectName("le902")
 self.gridLayout_2.addWidget(self.le902, 1, 0, 1, 1)

 self.le903 = QtWidgets.QLineEdit(self.gridLayoutWidget_2)
 self.le903.setText("17")
 self.le903.setObjectName("le903")
 self.gridLayout_2.addWidget(self.le903, 3, 0, 1, 1)

 self.le904 = QtWidgets.QLineEdit(self.gridLayoutWidget_2)
 self.le904.setText("18")
 self.le904.setObjectName("le904")
 self.gridLayout_2.addWidget(self.le904, 3, 0, 1, 1)

Ответы (2 шт):

Автор решения: S. Nick

Пожалуйста всегда предоставляйте минимально-воспроизводимый приме.

Можно по разному, например создать список.

import sys
from PyQt5.Qt import *
from PyQt5 import QtCore, QtWidgets


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        central_widget = QWidget()
        self.setCentralWidget(central_widget)  
        
        self.lineEdit_list = []                                   # +++
        
        self.widget = QWidget()
        self.gridLayout_2 = QGridLayout(self.widget)  
        
        self.le902 = QtWidgets.QLineEdit()
        self.le902.setText("16")
        self.le902.setObjectName("le902")
        self.lineEdit_list.append(self.le902)                     # +++
        self.gridLayout_2.addWidget(self.le902, 1, 0, 1, 1)

        self.le903 = QtWidgets.QLineEdit()
        self.le903.setText("17")
        self.le903.setObjectName("le903")
        self.lineEdit_list.append(self.le903)                     # +++
        self.gridLayout_2.addWidget(self.le903, 2, 0, 1, 1)

        self.le904 = QtWidgets.QLineEdit()
        self.le904.setText("18")
        self.le904.setObjectName("le904")
        self.lineEdit_list.append(self.le904)                     # +++
        self.gridLayout_2.addWidget(self.le904, 3, 0, 1, 1)
        
        self.label = QLabel()
        self.pushButton = QtWidgets.QPushButton('Получить данные в список.')
        self.pushButton.clicked.connect(self.get_list)
        
        main_layout = QVBoxLayout(central_widget)
        main_layout.addWidget(self.label)
        main_layout.addWidget(self.widget)
        main_layout.addWidget(self.pushButton)
        
    def get_list(self):
        _list = [lineEdit.text() for lineEdit in self.lineEdit_list]             # +++
        self.label.setText(str(_list))
        
        
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка
Автор решения: gil9red

Можно виджеты найти через метод findChildren

Пример:

import sys
from PyQt5.Qt import *
from PyQt5 import QtCore, QtWidgets


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        central_widget = QWidget()
        self.setCentralWidget(central_widget)

        self.widget = QWidget()
        self.gridLayout_2 = QGridLayout(self.widget)

        self.le902 = QtWidgets.QLineEdit()
        self.le902.setText("16")
        self.le902.setObjectName("le902")
        self.gridLayout_2.addWidget(self.le902, 1, 0, 1, 1)

        self.le903 = QtWidgets.QLineEdit()
        self.le903.setText("17")
        self.le903.setObjectName("le903")
        self.gridLayout_2.addWidget(self.le903, 2, 0, 1, 1)

        self.le904 = QtWidgets.QLineEdit()
        self.le904.setText("18")
        self.le904.setObjectName("le904")
        self.gridLayout_2.addWidget(self.le904, 3, 0, 1, 1)

        self.label = QLabel()
        self.pushButton = QtWidgets.QPushButton('Получить данные в список.')
        self.pushButton.clicked.connect(self.get_list)

        main_layout = QVBoxLayout(central_widget)
        main_layout.addWidget(self.label)
        main_layout.addWidget(self.widget)
        main_layout.addWidget(self.pushButton)

    def get_list(self):
        items = [lineEdit.text() for lineEdit in self.findChildren(QtWidgets.QLineEdit)]  # +++
        self.label.setText(str(items))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    
    window = MainWindow()
    window.show()
    
    sys.exit(app.exec_())
→ Ссылка