Skip to main content

A lightweight, focused UI library for Python

Project description

PicoUI Logo

PicoUI

A lightweight, focused UI library for Python

License: MIT Python


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 QGroupBox from 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


Download files

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

Source Distribution

picoui-0.1.1.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

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

picoui-0.1.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file picoui-0.1.1.tar.gz.

File metadata

  • Download URL: picoui-0.1.1.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

Hashes for picoui-0.1.1.tar.gz
Algorithm Hash digest
SHA256 21c9fc4f4f91d7a124f37aaff88a39a7b5b5f1cb97670efafac4830e66b6dff4
MD5 37f33f352938cc5958e501ac55a0063d
BLAKE2b-256 5ed0ff383796c78b854c06737b988e0eeb8e5555e68c738f75f198d8b64a08f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for picoui-0.1.1.tar.gz:

Publisher: python-publish.yml on markxbrooks/PicoUI

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

File details

Details for the file picoui-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: picoui-0.1.1-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

Hashes for picoui-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 760e9bfb28c5c0aa5d0c85626e09b4ade9183cd562e4e8e736b57d7d16831283
MD5 b48ccf65a134c15545cc618495076d17
BLAKE2b-256 fe36192a5613a4648d027982507bf304bd5d2ed6807b94381b63d1f1252f876d

See more details on using hashes here.

Provenance

The following attestation bundles were made for picoui-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on markxbrooks/PicoUI

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 Pingdom Monitoring Sentry Error logging StatusPage Status page