Skip to main content

pyqt-reactive

Reactive, ObjectState-backed forms and reusable application infrastructure for PyQt6.

PyPI version Documentation Status Python 3.11+

Quick start

ParameterFormManager renders an existing ObjectState. The state is the model; the form is a view over it.

from dataclasses import dataclass

from PyQt6.QtWidgets import QApplication
from objectstate import ObjectState, set_base_config_type
from pyqt_reactive.forms.parameter_form_manager import (
    FormManagerConfig,
    ParameterFormManager,
)
from pyqt_reactive.theming import ColorScheme

@dataclass
class ProcessingConfig:
    input_path: str = ""
    num_workers: int = 4
    enable_gpu: bool = False

app = QApplication([])
set_base_config_type(ProcessingConfig)
state = ObjectState(ProcessingConfig(), scope_id="processing")
form = ParameterFormManager(
    state,
    config=FormManagerConfig(color_scheme=ColorScheme()),
)
form.show()
app.exec()

Do not pass a dataclass type or instance directly to ParameterFormManager. Create ObjectState(instance) so edits, dirty tracking, hierarchy, and cross-window updates share one authority.

Ownership

pyqt-reactive owns generic widget protocols and strategies, form lifecycle, field-change dispatch, reusable services and managers, previews, animations, and window infrastructure. Host applications own domain workflows and adapters.

Installation

python -m pip install pyqt-reactive

For development:

git clone https://github.com/OpenHCSDev/PyQT-reactive.git
cd PyQT-reactive
python -m pip install -e ".[dev]"

Full documentation: pyqt-reactive.readthedocs.io

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyqt_reactive-0.1.35.tar.gz (588.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyqt_reactive-0.1.35-py3-none-any.whl (542.5 kB view details)

Uploaded Python 3

File details

Details for the file pyqt_reactive-0.1.35.tar.gz.

File metadata

  • Download URL: pyqt_reactive-0.1.35.tar.gz
  • Upload date:
  • Size: 588.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyqt_reactive-0.1.35.tar.gz
Algorithm Hash digest
SHA256 1dcdb3156da5afab6c29d7272773cbd7cfac18287ab41fa4e80bb3f7430d0a67
MD5 e2f4e474ff3b96c1f14ffb315cf7fd2a
BLAKE2b-256 019fee1e290035742edf08cda40a2ba1529026b906399e172a416055dee768d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyqt_reactive-0.1.35.tar.gz:

Publisher: publish.yml on OpenHCSDev/PyQT-reactive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyqt_reactive-0.1.35-py3-none-any.whl.

File metadata

  • Download URL: pyqt_reactive-0.1.35-py3-none-any.whl
  • Upload date:
  • Size: 542.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyqt_reactive-0.1.35-py3-none-any.whl
Algorithm Hash digest
SHA256 b54da897c933013239b5fe1b5080240d53366db7f88d91cff869ed3b296dc142
MD5 4abed503b06a3a3b7a6b2b9083dba8db
BLAKE2b-256 2c0a419300c2e8a3498d16d23811cbc4b4d8729221ab48ac5030fe20b720bdab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyqt_reactive-0.1.35-py3-none-any.whl:

Publisher: publish.yml on OpenHCSDev/PyQT-reactive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page