現在、私はカスタムQWidgetクラスをQVBoxLayoutに追加しようとしています。私が得ている問題は、ウィジェットがレイアウト内に全く現れないということです。私は、デフォルトサイズがゼロに設定されているので、ウィジェットが表示されていないと思ったので、QWidgetの最小サイズを設定しようとしました。私は機能について、ここで心配していないですので、スライダとLCDスクリーンの間で行わシグナルとスロットを削除PyQt5 QLayoutにカスタム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(400300)の灰色の領域を取得するだけ事実:だから
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にそれらを配置することです中央のウィジェット内で2ボタンウィジェットw1
とw3
が表示されますが、私のカスタムウィジェットは表示されず、setMinimumSize
でウィジェットのサイズを増やすと、灰色のスペースがw1
とw3
の間にのみ追加されます。
ウィジェットはそこにあるため、何らかの理由で表示されません。私はPyQtの新機能ですので、なぜこれが起こったのか説明してください。