'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:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|