Так уж вышло что у меня есть список, количество элементов которого я не знаю, с помощью PyQt5 создаю виджет через цикл for: Список, spinbox, pushButton
Если упрощенно, то выглядит это так. Неважно какой это список и куда он будет вставляться:
layout_main = QtWidgets.QVBoxLayout() for item in SPISOK: layout_item = QtWidgets.QHBoxLayout() #создаю лэйбл label = QtWidgets.QLabel() label.setText(item) #создаю спинбокс spin = QtWidgets.QSpinBox() spin.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) spin.setFocusPolicy(Qt.ClickFocus) spin.setAlignment(Qt.AlignHCenter) spin.setMaximum(99) spin.setValue(1) spin.setMinimumSize(31, 21) spin.setMaximumSize(31, 21) #создаю кнопку but = QtWidgets.QPushButton() but.setMinimumSize(21, 21) but.setMaximumSize(21, 21) but.setText("✓") but.setFont(QtGui.QFont("Times", 10, QtGui.QFont.Bold)) but.clicked.connect(lambda: print(spin.value(), item)) #распихиваю по лайаутам layout_item.addWidget(label) layout_item.addWidget(spin) layout_item.addWidget(but) layout_main.addItem(layout_item)