Source code for ewoksorange.gui.qt_utils.signals

from contextlib import ExitStack
from contextlib import contextmanager
from typing import Generator

from AnyQt import QtWidgets


[docs] @contextmanager def block_signals(*widgets: QtWidgets.QWidget) -> Generator[None, None, None]: """ Context manager that blocks signals on one or more Qt widgets. .. code-block:: python with block_signals(widget1, widget2): ... """ with ExitStack() as stack: for w in widgets: old: bool = w.blockSignals(True) stack.callback(w.blockSignals, old) yield