Python 3.x 更改多个QLabel的QLabel文本

Python 3.x 更改多个QLabel的QLabel文本,python-3.x,pyqt,pyqt4,python-3.3,qlabel,Python 3.x,Pyqt,Pyqt4,Python 3.3,Qlabel,我正在使用Python 3和Qt5。 我已经设计了一个QWidget,它有700多个Qlabel。我需要更改它们,但我想这样做,而不必写700多行来设置我所有标签的文本。 我还需要随意地展示和隐藏它们 如果我有一个变量名的字符串,有没有一种方法可以对它们进行分组或编辑该变量? 我正在寻找类似Matlab“赋值”函数的东西 标签名为label_A-label_Z和label_AA-label_ZZ 来自主要班级 导入ezodf self.ui = AnalysisGui.Ui_Form() sel

我正在使用Python 3和Qt5。 我已经设计了一个QWidget,它有700多个Qlabel。我需要更改它们,但我想这样做,而不必写700多行来设置我所有标签的文本。 我还需要随意地展示和隐藏它们

如果我有一个变量名的字符串,有没有一种方法可以对它们进行分组或编辑该变量? 我正在寻找类似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)

谢谢您的帮助。

您可以尝试使用
QWidget.findChild

import sys
from PyQt4.QtGui import *
try:
    from PyQt4.QtWidgets import *
except ImportError:
    pass


app = QApplication(sys.argv)

window = QWidget()
layout = QVBoxLayout()

for i in range(26):
    title = chr(ord('A')+i)
    label = QLabel(title, window)
    label.setObjectName("label_"+title)
    layout.addWidget(label)

window.findChild(QLabel, "label_F").setText("test")

window.setLayout(layout)
window.show()

app.exec_()

你能提供更多细节吗?标签的命名方案是什么?它们都在一个父控件中还是在某个复杂的结构中?我在上面添加了命名结构。我没有使用父控件显式创建标签,但是如果这是pyqt4中的默认值,那么就有了。但是您是如何创建标签的?我在Qt Designer中创建了标签。。。花了一点时间。如何在同一网格位置隐藏和取消隐藏QLabel?我不知道我是否做错了什么,但它对我不起作用。我得到:AttributeError:'Ui_Form'对象没有属性'findChild',在以下行:self.Ui.findChild(QtGui.QLabel,“label_”+Alpha.upper()).SetText(Alpha.upper()+)@Lex也许你可以使用
getattr(self.Ui,“label_”+Alpha.upper()).SetText(Alpha.upper()+)
。。。明天我会更深入地研究你的问题,因为我知道你在使用
ui
这个东西。