PyQT5嵌套布局未显示

问题描述

我目前正在PyQT5上尝试自己,并试图创建一个自定义小部件,其中包含带有一些标签的嵌套布局。 但是,当我尝试运行代码时,没有引发任何错误,但窗口保持空白。 这可能是什么问题?

class MainWindow(QMainWindow):
    def __init__(self,*args,**kwargs):
        super(MainWindow,self).__init__(*args,**kwargs)
        self.setwindowTitle("This is a test")
        devicewidget = DeviceWidget()
        self.setCentralWidget(devicewidget)

class DeviceWidget(QWidget):
    def __init__(self,**kwargs):
        super(DeviceWidget,**kwargs)
        layout = QVBoxLayout()
        save_image_btn = QPushButton("Save Image")
        restore_image_btn = QPushButton("Install Image")

        device_size_layout = QHBoxLayout()
        device_size_desc_lbl = QLabel("Space:")
        device_size_lbl = QLabel("69420MB")
        device_size_layout.addWidget(device_size_desc_lbl)
        device_size_layout.addWidget(device_size_lbl)

        layout.addWidget(save_image_btn)
        layout.addWidget(save_image_btn)
        layout.addLayout(device_size_layout)

#Initialization
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()

请明确说明,这是我目前正在尝试实现的目标:

enter image description here

解决方法

解决方案是我忘记在DeviceWidget类中设置布局。

self.setLayout(layout) or layout= QVBoxLayout(self) 

有帮助。