【发布时间】:2013-05-21 02:36:50
【问题描述】:
我正在使用 Python 3 和 Qt5。 我设计了一个 QWidget,它有 700 多个 QLabel。我需要更改它们,但我想这样做而不必写超过 700 行来设置我所有标签的文本。 我还需要随意显示和隐藏它们。
如果我有一个变量名称的字符串,有没有办法可以对它们进行分组或编辑变量? 我正在寻找类似 Matlab 'assignin' 函数的东西。
标签被命名为 label_A - label_Z 和 label_AA - label_ZZ
从主类 导入ezdf
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)
感谢您的帮助。
【问题讨论】:
-
你能提供更多细节吗?您的标签命名方案是什么?它们都是在一个父控件中还是在某些复杂的结构中?
-
我已经添加了上面的命名结构。我没有使用父控件显式创建它们,但如果这是 pyqt4 中的默认设置,那么就有。
-
但是您是如何创建标签的?
-
我在 Qt Designer 中创建它们...花了一点时间。
-
如何在同一网格位置隐藏和取消隐藏 QLabel?
标签: python-3.x pyqt pyqt4 python-3.3 qlabel