spacr.qt.screens.app_screen
===========================

.. py:module:: spacr.qt.screens.app_screen

.. autoapi-nested-parse::

   AppScreen — the reusable layout every non-interactive spacr app uses.

   Structure (horizontal splitter):
       ┌───────────────────────┬─────────────────────────────┐
       │ Settings (scrollable) │ Console (top)               │
       │                       │ Usage bars   |  Run/Stop... │
       │  QGroupBox sections   │ Progress bar                │
       │  QFormLayout inside   │                             │
       └───────────────────────┴─────────────────────────────┘







Module Contents
---------------

.. py:data:: APP_TITLES

.. py:class:: AppScreen(app_key: str, parent=None)

   Bases: :py:obj:`PySide6.QtWidgets.QWidget`


   Generic settings + runtime screen used by every non-interactive app.

   Composes the settings model on the left with the console, usage bars,
   figures card, and actions row on the right.

   :param app_key: id of the app (see ``APPS`` in ``spacr.qt.app``).
   :ivar error_explain_requested: emitted with ``(traceback, app_key)``
       when the user clicks "Explain error"; MainWindow routes it to
       the AI Console for backward compatibility.


   .. py:attribute:: error_explain_requested


   .. py:attribute:: app_key


   .. py:method:: eventFilter(obj, event)

      Show/hide the hover tooltip and update the hint strip on Enter/Leave.



   .. py:method:: apply_settings_dict(settings: dict) -> int

      Push key/value pairs from `settings` into whichever settings
      widgets this app exposes. Silently skips keys the current app
      does not have — the same dict can safely be applied across
      several apps. Returns the count of keys actually applied.



