Skip to main content

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-level EventBus
  • 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


Download files

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

Source Distribution

glavnaqt-0.2.2.tar.gz (56.6 kB view details)

Uploaded Source

Built Distribution

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

glavnaqt-0.2.2-py3-none-any.whl (46.8 kB view details)

Uploaded Python 3

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

Hashes for glavnaqt-0.2.2.tar.gz
Algorithm Hash digest
SHA256 66d76a61257f87956be4caf1067d4bae6374130eb2753ff7179862e9feb9cfe5
MD5 b41fb208d8bf6b809a3b1b82328ea8a3
BLAKE2b-256 c243fa3952ecbcf67e939e3a30329a1e52c17c2a8f4306ab53925d2ff23682f3

See more details on using hashes here.

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

Hashes for glavnaqt-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 71b269576debfe371bbef35270781c8ce79eee24e806bd026679163b13f89925
MD5 3773d9fe1d4e0acb1107292784fca4c3
BLAKE2b-256 3425b5a65453c6381a45dee27f00a0a4fbf0c74ea13af9a74dfded2771403a83

See more details on using hashes here.

Supported by

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