В настоящее время я пытаюсь добавить собственный класс QWidget в QVBoxLayout. Проблема, которую я получаю, заключается в том, что виджет вообще не отображается в макете. Я даже попытался установить минимальный размер QWidget, потому что думал, что виджет не отображается, потому что его размер по умолчанию был установлен на ноль.
Это упрощение того, как выглядит класс:
class myWidget(QWidget):
def __init__(self):
super().__init__()
# Slider
self.mySlider = QSlider(Qt.Horizontal)
self.mySlider.setRange(-360, 360)
# LCD Screen
self.lcd = QLCDNumber()
self.lcd.setMinimumHeight(45)
self.lcd.setMaximumHeight(75)
# set Size
self.setMinimumSize(QSize(400,300))
Я удалил сигналы и щели между слайдером и ЖК-экраном, потому что здесь меня не беспокоит функциональность. Только тот факт, что я получаю серую область QSize (400,300) прямо между двумя кнопками в следующем коде:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
#Create Widgets to be Added to Central Widget
self.w1 = QPushButton("First")
self.w2 = myWidget()
self.w3 = QPushButton("Third")
#Set Central Widget and VBox
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.layout = QVBoxLayout()
self.central_widget.setLayout(self.layout)
#Add widgets
self.layout.addWidget(self.w1)
self.layout.addWidget(self.w2)
self.layout.addWidget(self.w3)
Я просто создаю 3 виджета и помещаю их в QVBoxLayout в центральном виджете. Виджеты с двумя кнопками w1
и w3
появляются, но мой пользовательский виджет не отображается, а увеличение размера виджета с помощью setMinimumSize
только добавляет серые интервалы между w1
и w3
.
Так что виджет есть, его просто почему-то не видно. Я новичок в PyQt, поэтому объясните, почему это произошло.