diff --git a/src/app_model/backends/qt/_qmenu.py b/src/app_model/backends/qt/_qmenu.py index 9e253e7b..98db3f96 100644 --- a/src/app_model/backends/qt/_qmenu.py +++ b/src/app_model/backends/qt/_qmenu.py @@ -1,5 +1,6 @@ from __future__ import annotations +import contextlib from typing import ( TYPE_CHECKING, Collection, @@ -120,7 +121,10 @@ def _disconnect(self) -> None: def _on_registry_changed(self, changed_ids: Set[str]) -> None: if self._menu_id in changed_ids: - self.rebuild() + # if this (sub)menu has been removed from the registry, + # we may hit a RuntimeError when trying to rebuild it. + with contextlib.suppress(RuntimeError): + self.rebuild() class QModelSubmenu(QModelMenu):