Skip to content

Commit c038343

Browse files
authored
fix: Use QApplication instance as a parent of global actions (#246)
fix: Use QApplication instance as pareent of global actions
1 parent 06c1bc4 commit c038343

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/app_model/backends/qt/_qmenu.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from collections.abc import Collection, Iterable, Mapping, Sequence
55
from typing import TYPE_CHECKING, cast
66

7-
from qtpy.QtWidgets import QMenu, QMenuBar, QToolBar
7+
from qtpy.QtWidgets import QApplication, QMenu, QMenuBar, QToolBar
88

99
from app_model import Application
1010
from app_model.types import SubmenuItem
@@ -300,14 +300,18 @@ def _rebuild(
300300

301301
groups = list(app.menus.iter_menu_groups(menu_id))
302302
n_groups = len(groups)
303+
qapp = QApplication.instance()
303304
for n, group in enumerate(groups):
304305
for item in group:
305306
if isinstance(item, SubmenuItem):
306307
if include_submenus:
307308
submenu = QModelSubmenu(item, app, parent=menu)
308309
cast("QMenu", menu).addMenu(submenu)
309310
elif item.command.id not in _exclude:
310-
action = QMenuItemAction.create(item, app=app, parent=menu)
311+
# use QApplication instance as parent for actions
312+
# because we use action singleton, and actions
313+
# are not related to any window.
314+
action = QMenuItemAction.create(item, app=app, parent=qapp)
311315
menu.addAction(action)
312316
if n < n_groups - 1:
313317
menu.addSeparator()

0 commit comments

Comments
 (0)