Използвам Python 3 и Qt5. Проектирах QWidget с малко над 700 QLabels. Трябва да ги променя, но бих искал да го направя, без да се налага да пиша над 700 реда, за да задам текста за всичките си етикети. Също така трябва да ги показвам и скривам по желание.
Има ли начин да ги групирам или да редактирам променлива, ако имам низ от името на тази променлива? Търся нещо като функцията "assignin" на Matlab.
Етикетите се наричат label_A - label_Z и label_AA - label_ZZ
От основния клас импортирайте ezodf
self.ui = AnalysisGui.Ui_Form()
self.ui.setupUi(self)
self.Alphabet = ["a", "b", "c", "d", "e",
"f", "g", "h", "i", "j",
"k", "l", "m", "n", "o",
"p", "q", "r", "s", "t",
"u", "v", "w", "x", "y", "z"]
for Alpha in self.Alphabet:
self.ui.findChild(QtGui.QLabel, "label_"+Alpha.upper()).SetText(Alpha.upper()+" ")
for Beta in self.Alphabet:
self.ui.findChild(QtGui.QLabel, "label_"+Alpha.upper()+Beta.upper()).SetText(Alpha.upper()+Beta.upper()+" ")
Това е от класа AnalysisGui, показващ как се дефинират етикетите
self.label_A = QtGui.QLabel(Form)
self.label_A.setStyleSheet(_fromUtf8("color: rgb(0, 0, 0);\n""font: 8pt \"Calibri\";\n""background-image: url(:/Thoth/SeeThrough.png);"))
self.label_A.setObjectName(_fromUtf8("label_A"))
self.gridLayout.addWidget(self.label_A, 1, 0, 1, 1)
self.label_B = QtGui.QLabel(Form)
self.label_B.setStyleSheet(_fromUtf8("color: rgb(0, 0, 0);\n""font: 8pt \"Calibri\";\n""background-image: url(:/Thoth/SeeThrough.png);"))
self.label_B.setObjectName(_fromUtf8("label_B"))
self.gridLayout.addWidget(self.label_B, 1, 1, 1, 1)
self.label_C = QtGui.QLabel(Form)
self.label_C.setStyleSheet(_fromUtf8("color: rgb(0, 0, 0);\n""font: 8pt \"Calibri\";\n""background-image: url(:/Thoth/SeeThrough.png);"))
self.label_C.setObjectName(_fromUtf8("label_C"))
self.gridLayout.addWidget(self.label_C, 1, 2, 1, 1)
Благодаря за вашата помощ.