'Automatize code in QTDesigner for objects

I would like to take names and values from 2 list to my QTDesigner text labels and QLineEdit, this is the code which I get:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(1249, 740)
        self.label = QtWidgets.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(370, 180, 68, 19))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(370, 230, 68, 19))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(370, 280, 68, 19))
        self.label_3.setObjectName("label_3")
        self.lineEdit = QtWidgets.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(450, 180, 113, 25))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(Dialog)
        self.lineEdit_2.setGeometry(QtCore.QRect(450, 230, 113, 25))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit_3 = QtWidgets.QLineEdit(Dialog)
        self.lineEdit_3.setGeometry(QtCore.QRect(450, 280, 113, 25))
        self.lineEdit_3.setObjectName("lineEdit_3")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.label.setText(_translate("Dialog", "a"))
        self.label_2.setText(_translate("Dialog", "b"))
        self.label_3.setText(_translate("Dialog", "c"))
        self.lineEdit.setText(_translate("Dialog", "1"))
        self.lineEdit_2.setText(_translate("Dialog", "2"))
        self.lineEdit_3.setText(_translate("Dialog", "3"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

And when I have two list of names and I would like to generate automatically those fields, eg.

from PyQt5 import QtCore, QtGui, QtWidgets

list_names = ['a', 'b', 'c']
list_val = [1, 2, 3]
place = [350,400,450]
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(1249, 740)
        for i in range(0,len(list_names)):
            self.list_names[i] = QtWidgets.QLabel(Dialog)
            self.list_names[i].setGeometry(QtCore.QRect(place[i], 110, 68, 19))
            self.list_names[i].setObjectName(list_names[i])
            self.list_val[i] = QtWidgets.QLineEdit(Dialog)
            self.list_val[i].setGeometry(QtCore.QRect(place[i], 110, 113, 25))
            self.list_val[i].setObjectName(list_val[i])

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        for i in range(0, len(list_names)):
            self.list_names[i].setText(_translate("Dialog", str(list_names[i])))
            self.list_val[i].setText(_translate("Dialog", str(list_val[i])))
...

This is an example for only 3 factors in list, I have around 20 of them and I wondering if I can do it in a loop to create the output like that:

enter image description here



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source