プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2022/02/19

[PySide] QPushButton にレイアウトを設定している場合にサイズがおかしい

event_note2022/02/19 8:02

QPushButtonQVBoxLayout などを 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()