Skip to content

Commit af861f4

Browse files
authored
fix: fix qt main window composition (#686)
1 parent bf9f663 commit af861f4

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/magicgui/backends/_qtpy/widgets.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -571,22 +571,28 @@ class MainWindow(Container):
571571
def __init__(
572572
self, layout="vertical", scrollable: bool = False, **kwargs: Any
573573
) -> None:
574+
parent = kwargs.pop("parent", None)
574575
super().__init__(layout=layout, scrollable=scrollable, **kwargs)
575-
self._main_window = QtW.QMainWindow()
576576
self._menus: dict[str, QtW.QMenu] = {}
577-
if scrollable:
578-
self._main_window.setCentralWidget(self._scroll)
579-
else:
580-
self._main_window.setCentralWidget(self._qwidget)
577+
self._central = self._qwidget
578+
self._qwidget = QtW.QMainWindow(parent)
579+
self._qwidget.setCentralWidget(self._central)
580+
581+
@property
582+
def _is_scrollable(self) -> bool:
583+
return isinstance(self._central, QtW.QScrollArea)
584+
585+
def _mgui_get_root_native_widget(self):
586+
return self._qwidget
581587

582588
def _mgui_get_visible(self):
583-
return self._main_window.isVisible()
589+
return self._qwidget.isVisible()
584590

585591
def _mgui_set_visible(self, value: bool):
586-
self._main_window.setVisible(value)
592+
self._qwidget.setVisible(value)
587593

588594
def _mgui_get_native_widget(self) -> QtW.QMainWindow:
589-
return self._main_window
595+
return self._qwidget
590596

591597
def _mgui_create_menu_item(
592598
self,
@@ -596,9 +602,9 @@ def _mgui_create_menu_item(
596602
shortcut: str | None = None,
597603
):
598604
menu = self._menus.setdefault(
599-
menu_name, self._main_window.menuBar().addMenu(f"&{menu_name}")
605+
menu_name, self._qwidget.menuBar().addMenu(f"&{menu_name}")
600606
)
601-
action = QtW.QAction(action_name, self._main_window)
607+
action = QtW.QAction(action_name, self._qwidget)
602608
if shortcut is not None:
603609
action.setShortcut(shortcut)
604610
if callback is not None:

0 commit comments

Comments
 (0)