#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("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_()
Просто чтобы было ясно, это то, что я сейчас пытаюсь выполнить:
Комментарии:
1. изменить
layout = QVBoxLayout()
наlayout = QVBoxLayout(self)
Ответ №1:
Решение заключалось в том, что я забыл установить макет в классе DeviceWidget.
self.setLayout(layout) or layout= QVBoxLayout(self)
помогло.