Skip to main content

A fast custom-rendered Windows UI engine for Python with a Bootstrap-style shell. Early preview — APIs will change.

Project description

GUIpi26

Early preview (alpha). This is a proof of concept — expect breaking API changes between releases. Pin a specific version if you build on it.

A fast, custom-rendered Windows UI engine for Python. No Tkinter, no Qt — just ctypes over Win32 and GDI, with a small set of modern controls and a Bootstrap-style sidebar shell.

Windows only. Python 3.8+.

Install

pip install --pre guipi26

(--pre is required while GUIpi26 is in alpha. Plain pip install guipi26 will skip pre-releases.)

Hello, sidebar

from guipi26 import (
    create_window, set_theme, create_collapsible_nav_bar,
    create_label, create_card, create_nav_bar,
)

app = create_window("My App", 1200, 760)
set_theme(app, background="#f5f6f8", surface="#ffffff", accent="#0d6efd")

create_collapsible_nav_bar(
    app, "MyApp",
    [
        {"key": "home", "title": "Home", "subtitle": "Start here"},
        {"key": "stats", "title": "Stats", "subtitle": "Numbers"},
    ],
    width=240, collapsed_width=72, selected_key="home",
)

cx = app.content_origin_x(padding=32)

create_label(app, "Home", x=cx, y=32, width=420, height=40, style="title", tab="home")
create_nav_bar(app, "Today", x=cx, y=130, width=800, subtitle="A quick look.", tab="home")
create_card(app, "Sessions", "24", x=cx, y=200, width=240, height=110, subtitle="up 12%", accent="#0d6efd", tab="home")

create_label(app, "Stats", x=cx, y=32, width=420, height=40, style="title", tab="stats")

app.mainloop()

What's in the box

  • create_window — the host window
  • create_collapsible_nav_bar — full-height left sidebar with collapse toggle
  • create_nav_bar — page header with title, subtitle, and action buttons
  • create_label, create_button
  • create_card, create_panel
  • create_grid — simple data grid
  • create_chart — bar chart
  • create_horizontal_grid, create_vertical_grid — layout helpers
  • set_theme — background, surface, accent, etc.

Tag any control with tab="key" to scope it to a sidebar entry. The shell only paints controls whose tag matches the active sidebar key (or controls with no tag).

Example

A full dashboard example lives in examples/dashboard.py:

python examples/dashboard.py

License

MIT — see LICENSE.

Documentation

Full docs live in docs/:

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

guipi26-0.1.0a1.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

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

guipi26-0.1.0a1-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file guipi26-0.1.0a1.tar.gz.

File metadata

  • Download URL: guipi26-0.1.0a1.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for guipi26-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 60279cda8872d0906ca7a92e36425c4106fea6ccde7173cb9abd81542ea29739
MD5 1565bdd92ab8744d09895f1f3086a41b
BLAKE2b-256 6740af63998e2760961485d332e940f5bac36b213b551716700943eb3b5cb5a1

See more details on using hashes here.

File details

Details for the file guipi26-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: guipi26-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for guipi26-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 da94eb0df2850a3611dae4de2c755f9c036a986d1d9939e1b5eed7e97edfbd43
MD5 31874d8a564a428ba71838b7e281fef2
BLAKE2b-256 5c00195fe8cf753a1484f76a085978f51c02f7e13a397a4ee22962a09938295a

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