PyQt6 app framework with event bus, layout management, and theming helpers
Project description
GlavnaQt
GlavnaQt is a PyQt6-based GUI framework for building desktop applications with customizable layouts and basic UI features.
Features
- Layouts with splitters and sidebars (
CollapsibleSplitter,LayoutManager) - Framework-internal Qt signals (
FrameworkSignals) kept separate from the app-levelEventBus - Configuration via
UIConfig(Confumo) - Status bar updates (
StatusBarManager) - Background tasks (
ThreadManager,TaskRunnable) - Light/dark theme support (
ThemeManager,ThemeWatcher) - Optional profiling (
profiler.py) and logging (logger.py)
Installation
For normal use, install the published package:
pip install GlavnaQt
For development from source, use a checkout from the canonical VPS host or public mirror, then create a virtual environment:
cd GlavnaQt
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python glavnaqt/examples/example.py
Usage
Start the example app:
python glavnaqt/examples/example.py
Cycle layouts:
python glavnaqt/examples/example.py --cycle-layouts
Load a data-only YAML/TOML layout file:
python glavnaqt/examples/example.py --layout-file layout.yaml
During local UI development, enable explicit data-layout hot reload:
python glavnaqt/examples/example.py --layout-file layout.yaml --dev-layout-hot-reload
Hot reload only recompiles the declarative layout data into LayoutSpec; it does not import or reload Python modules. During rebuilds, GlavnaQt preserves generic UI state for widgets with stable objectName values where feasible: splitter sizes/collapsed flags, tab or stack selection indexes, and scroll-bar positions.
Adjust application defaults in glavnaqt/core/config.py.
Event APIs
GlavnaQt framework plumbing uses typed Qt signals on FrameworkSignals. Framework-owned events are not bridged through EventBus. Application-specific events that GlavnaQt does not own can continue to use EventBus, but downstream applications are responsible for triggering their own startup refreshes.
Development
Run the local packaging check:
scripts/ci/check
Run the fuller local pass, including the optional Qt smoke import:
scripts/ci/full
For a tagged release candidate:
scripts/ci/release-check v0.1.0
License
This repository ships under 0BSD; see LICENSE and NOTICE.
Contact
Open an issue on the public Codeberg mirror.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glavnaqt-0.2.2.tar.gz.
File metadata
- Download URL: glavnaqt-0.2.2.tar.gz
- Upload date:
- Size: 56.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66d76a61257f87956be4caf1067d4bae6374130eb2753ff7179862e9feb9cfe5
|
|
| MD5 |
b41fb208d8bf6b809a3b1b82328ea8a3
|
|
| BLAKE2b-256 |
c243fa3952ecbcf67e939e3a30329a1e52c17c2a8f4306ab53925d2ff23682f3
|
File details
Details for the file glavnaqt-0.2.2-py3-none-any.whl.
File metadata
- Download URL: glavnaqt-0.2.2-py3-none-any.whl
- Upload date:
- Size: 46.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71b269576debfe371bbef35270781c8ce79eee24e806bd026679163b13f89925
|
|
| MD5 |
3773d9fe1d4e0acb1107292784fca4c3
|
|
| BLAKE2b-256 |
3425b5a65453c6381a45dee27f00a0a4fbf0c74ea13af9a74dfded2771403a83
|