diff --git a/src/pc/gui/panels/collapsible_group_box.py b/src/pc/gui/panels/collapsible_group_box.py index f444ad6..d465e6a 100644 --- a/src/pc/gui/panels/collapsible_group_box.py +++ b/src/pc/gui/panels/collapsible_group_box.py @@ -3,6 +3,7 @@ チェックボックスで折りたたみ可能な QGroupBox """ +from PySide6.QtGui import QShowEvent from PySide6.QtWidgets import QGroupBox, QLayout, QWidget @@ -13,13 +14,16 @@ super().__init__(title) self.setCheckable(True) self.setChecked(False) + self._first_show: bool = True self.toggled.connect(self._toggle_content) - def setLayout(self, layout: QLayout) -> None: - """レイアウト設定後に折りたたみ状態を反映する""" - super().setLayout(layout) - if not self.isChecked(): - _set_layout_visible(layout, False) + def showEvent(self, event: QShowEvent) -> None: + """初回表示時に折りたたみ状態を反映する""" + super().showEvent(event) + if self._first_show: + self._first_show = False + if not self.isChecked(): + self._toggle_content(False) def _toggle_content(self, on: bool) -> None: """チェック状態に応じてレイアウト内の要素を表示/非表示する