spacr.qt
========

.. py:module:: spacr.qt

.. autoapi-nested-parse::

   Modern PySide6 (Qt 6) GUI for spacr.

   Runs alongside the classic Tk GUI (spacr.gui) — nothing here touches the
   Tk stack. To launch:

       spacr-qt            # CLI shortcut (see setup.py entry_points)
       python -m spacr.qt  # equivalent

   The old GUI keeps working via:
       spacr               # Tk (classic)
       python -m spacr

   The Qt code lives in three layers:
       theme.py              — palette + QSS stylesheet
       widgets/              — reusable custom widgets (tiles, sections, ...)
       screens/              — one Qt widget per app screen
                               (startup, mask, measure, ...)
       app.py                — main window + QApplication bootstrap



Submodules
----------

.. toctree::
   :maxdepth: 1

   /api/spacr/qt/ai/index
   /api/spacr/qt/annotate_engine/index
   /api/spacr/qt/app/index
   /api/spacr/qt/bridge/index
   /api/spacr/qt/iconset/index
   /api/spacr/qt/logging_util/index
   /api/spacr/qt/mask_engine/index
   /api/spacr/qt/prefs/index
   /api/spacr/qt/screens/index
   /api/spacr/qt/synthetic/index
   /api/spacr/qt/theme/index
   /api/spacr/qt/tutorial/index
   /api/spacr/qt/widgets/index




Package Contents
----------------

.. py:function:: run(argv: list[str] | None = None) -> int

   Launch the Qt GUI. Public entry point used by both `spacr-qt` and
   `python -m spacr.qt`.

   :param argv: Optional CLI arguments. The first positional element,
                if present, opens directly into that app screen key
                (e.g. `spacr-qt mask`).

   :returns: The exit code returned by `QApplication.exec()`.


