QPushButton
に QVBoxLayout
などを setLayout()
で設定している場合に、ボタンの縦のサイズが小さすぎてレイアウトが潰れた状態になりました。
レイアウトのサイズに応じてボタンのサイズを変更するにはどうしたらいいのかと悩んでいたら以下の記事を見つけました。
sizeHint()
をオーバーライドし、レイアウトが設定されていればそのサイズを、設定されていなければ基底クラスのサイズを返せばいいようです。
- PySide 6.2.2.1
def sizeHint(self):
if self.layout():
# the button now has a layout, return its size hint
return self.layout().sizeHint()
# no layout set, return the result of the default implementation
return super().sizeHint()