Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQT5嵌套布局未显示_Python_Python 3.x_Pyqt_Pyqt5_Pyqt4 - Fatal编程技术网

Python PyQT5嵌套布局未显示

Python PyQT5嵌套布局未显示,python,python-3.x,pyqt,pyqt5,pyqt4,Python,Python 3.x,Pyqt,Pyqt5,Pyqt4,我目前正在PyQT5上尝试自己,并尝试创建一个自定义小部件,其中包含带有一些标签的嵌套布局。 但是,当我尝试运行代码时,没有抛出错误,但窗口保持空白。 这里有什么问题 class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowTitle("Th

我目前正在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, *args, **kwargs):
        super(DeviceWidget, self).__init__(*args, **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_()
明确地说,这就是我目前正在努力实现的目标:

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

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

帮助。

layout=QVBoxLayout()
更改为
layout=QVBoxLayout(self)