我正在寻找最合适的解决方案来创建复合小部件,我可以在应用程序的几个地方重用这些小部件(带有几个子菜单的图形控制界面,其中一些复杂的小部件将被重用)。
主要是我试图创建我将在几个地方使用的自定义 QWidget、QLabel 和 QFrame 对象。我准备了这样的例子:
class FansLabelsRight(QWidget):
def __init__(self, parent):
super().__init__(parent)
print('is it working?')
self.setGeometry(275,65,110,140)
self.setStyleSheet("background: rgba(255,0,0,50)")
#self.layout = QLayout(self)
self.pane1 = QLabel(self)
self.pane2 = QLabel(self)
self.pane3 = QLabel(self)
pixmap1 = QPixmap('rtC.png')
pixmap2 = QPixmap('rtB.png')
pixmap3 = QPixmap('rtA.png')
self.pane1.setPixmap(pixmap1)
self.pane2.setPixmap(pixmap2)
self.pane3.setPixmap(pixmap3)
#self.layout.addWidget(self.pane1)
#self.layout.addWidget(self.pane2)
#self.layout.addWidget(self.pane3)
self.pane1.setGeometry(30,10,pixmap1.width(), pixmap1.height())
self.pane2.setGeometry(35,30,pixmap2.width(), pixmap2.height())
self.pane3.setGeometry(40,30,pixmap3.width(), pixmap3.height())
self.setLayout(self.layout)
self.show()
它没有用。除了我测试的没有正面结果的其他方法之外,我期望我基于 Q tDesigner 构建的一种方法 - 创建自定义对象,该对象实际上添加到我的 QMainWindow 类中的其他小部件,但这不是我所期望的,我读到的应该是可能的。换句话说,我想到了带有子小部件的容器。真的有可能吗?
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
self.label = QLabel(Form)
self.label.setGeometry(QtCore.QRect(60, 10, 61, 81))
self.label.setPixmap(QPixmap("rtA.png"))
self.label.setObjectName("label")
self.label_2 = QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(70, 30, 51, 111))
self.label_2.setPixmap(QPixmap("rtB.png"))
self.label_2.setObjectName("label_2")
self.label_3 = QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(60, 90, 47, 61))
self.label_3.setPixmap(QPixmap("rtC.png"))
self.label_3.setObjectName("label_3")
self.pushButton = QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(0, 0, 75, 61))
self.pushButton.setFlat(True)
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(0, 100, 75, 61))
self.pushButton_2.setFlat(True)
self.pushButton_2.setObjectName("pushButton_2")
QtCore.QMetaObject.connectSlotsByName(Form)
您能否建议我如何实现这一目标?如何创建自己的小部件,该小部件将从多个对象构建并将它们之间的整个逻辑保留在其类中?(根据逻辑,我理解按下一个按钮将显示另一个标签,而其他按钮将显示,等等......)
我遇到的问题之一是布局,它不允许我将这些标签放置在我想要的位置。
这是它应该是什么样子的示例。