A lightweight, focused UI library for Python
Project description
Overview
PicoUI provides core UI functionality for PySide6/Qt applications with a clean, type-safe API. Built for developers who need reliable UI components—layout helpers, group boxes, preference dialogs, widget specs, and more—without the bloat. It favors convention over configuration and keeps the surface area small.
Features
- Layout helpers — Create vertical/horizontal layouts, form layouts, and rows with optional stretches and spacing
- Group builders — Build
QGroupBoxfrom labels and content (layouts, widget lists, or definitions) - Spec-driven UI — Dataclass specs for buttons, checkboxes, combos, spinboxes, tabs, and windows to describe UI declaratively
- Preferences dialogs — Base class for tabbed preference dialogs with spec-driven fields, reset support, and tooltips
- Widget utilities — Button/checkbox creation from specs, spinbox-with-label helpers, and value setters
- Icon registry — Centralized icon definitions and retrieval with fallback support (qtawesome)
- Tooltip manager — Shared tooltip handling
- Dimensions — Standard sizes for icons, dialogs, and progress bars
Requirements
- Python 3.8+
- PySide6
- qtawesome (for icon registry)
Installation
pip install picoui
Or from source (editable):
git clone https://github.com/markxbrooks/PicoUI.git
cd PicoUI
pip install -e .
Quick Start
from PySide6.QtWidgets import QApplication, QLabel
from picoui.helpers import build_group, group_with_layout
app = QApplication([])
# Simple group with widgets
group = build_group("Options", [QLabel("Item 1"), QLabel("Item 2")])
# Group with layout for incremental building
group, layout = group_with_layout(label="Section", vertical=True)
layout.addWidget(QLabel("Dynamic content"))
# Layout helpers
from picoui.helpers import create_vertical_layout, create_form_layout
vbox = create_vertical_layout(spacing=8)
form = create_form_layout()
Project Structure
picoui/
├── helpers/ # Layout and group box utilities
├── specs/ # Dataclass specs for widgets (ButtonSpec, CheckBoxSpec, etc.)
├── dialogs/ # Preferences dialog base and helpers
├── widget/ # Widget creation helpers and setters
├── tooltip/ # Tooltip management
├── dimensions.py # Standard UI dimensions
├── icons.py # Icon registry
└── settings.py # Settings integration
License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the UI community
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 picoui-0.1.3.tar.gz.
File metadata
- Download URL: picoui-0.1.3.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5313b8357b4e0e358f6193bb8224e8a4143d7e50c3d7223703c27004068a674
|
|
| MD5 |
5bc9b026b554e8edee4a5b8b2846607c
|
|
| BLAKE2b-256 |
9eb8b463d9ba56a5b3c601f63d148e604f0c6ab7b4300c14eb094a6797a8cedd
|
Provenance
The following attestation bundles were made for picoui-0.1.3.tar.gz:
Publisher:
python-publish.yml on markxbrooks/PicoUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
picoui-0.1.3.tar.gz -
Subject digest:
e5313b8357b4e0e358f6193bb8224e8a4143d7e50c3d7223703c27004068a674 - Sigstore transparency entry: 1092057355
- Sigstore integration time:
-
Permalink:
markxbrooks/PicoUI@94e48159267f38ec06217318ef09bea248205ed7 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/markxbrooks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@94e48159267f38ec06217318ef09bea248205ed7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file picoui-0.1.3-py3-none-any.whl.
File metadata
- Download URL: picoui-0.1.3-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d202f73d66f7be7fb879ac10930cb6947417534e207543300a7c0087814b6da4
|
|
| MD5 |
7f2389db5fbea925cf6e5229d7b11cff
|
|
| BLAKE2b-256 |
d2d664ea59cf5c61966a771e10b5986d0542394861b02e2ce9f90333bb44d53f
|
Provenance
The following attestation bundles were made for picoui-0.1.3-py3-none-any.whl:
Publisher:
python-publish.yml on markxbrooks/PicoUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
picoui-0.1.3-py3-none-any.whl -
Subject digest:
d202f73d66f7be7fb879ac10930cb6947417534e207543300a7c0087814b6da4 - Sigstore transparency entry: 1092057360
- Sigstore integration time:
-
Permalink:
markxbrooks/PicoUI@94e48159267f38ec06217318ef09bea248205ed7 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/markxbrooks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@94e48159267f38ec06217318ef09bea248205ed7 -
Trigger Event:
release
-
Statement type: