pyqt-reactive
Reactive, ObjectState-backed forms and reusable application infrastructure for PyQt6.
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
Metadata
Release files for pyqt-reactive 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyqt_reactive-0.6.0.tar.gz | 631.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyqt_reactive-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / pyqt_reactive-0.6.0.tar.gz
| Download URL | pyqt_reactive-0.6.0.tar.gz |
|---|---|
| Size | 631.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
88e98a46bd418a54292950fd9ef070dd0d609f7193bb6776a108908c679404a8
|
|
BLAKE2b-256 checksum How to use checksums |
39d9cd43b6e0794692c0ddd6837ef267f960b6118c5e6bb8d0ca30af9178de92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / pyqt_reactive-0.6.0-py3-none-any.whl
| Download URL | pyqt_reactive-0.6.0-py3-none-any.whl |
|---|---|
| Size | 509.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3511527219a93d5d7dccf600375f51fb835d3c3c725c9cf0f77e106566f9693e
|
|
BLAKE2b-256 checksum How to use checksums |
8cb355db07803f34279dd6322fc3e0688b0404eeb8ea86f7c628d4c6e431cbc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|