This release is a pre-release and may not be stable for production use.
🇬🇧 BareWinGUI (English)
BareWinGUI is a pure GUI framework for Windows: native windows and controls from Python, with nothing but ctypes and the Windows system DLLs. It is the Python successor of the GUI part of AutoIt (GUICreate/GUICtrlCreate), with a Python-like API and a flexbox-style layout.
Key Features
- No dependencies: Python standard library only. No wheels, no runtimes.
- Native controls only: standard controls (
user32) and common controls (comctl32v6), themed by Windows. BareWinGUI draws nothing itself: no owner-draw, no custom theme. - Flexbox-style layout:
VBox,HBox,Stack,Spacer, optionsgrow,shrink,width,height,min_*,max_*,align_self. Built withwithblocks. - High DPI: Per-Monitor-V2, all sizes in DIPs, reacts to monitor changes.
- Python-like API: events are handlers without arguments (
on_click=...,button.on_click(fn)), properties instead of getters and setters. - Thread-safe UI updates:
app.invoke(fn)andapp.call(fn). - Targets: Windows 10 / 11, Python 3.11+, x64 and x86. The package imports on every platform; creating an
Appneeds Windows.
Installation
pip install --pre barewingui # beta: pip needs --pre for pre-releases
or from source:
git clone https://github.com/bastian-fluegel/barewingui.git
cd barewingui
pip install -e .
Quickstart
from barewingui import App, Button, Label, VBox, Window
app = App()
with Window("Hello", size=(320, 160)) as win:
with VBox(padding=16, gap=10):
label = Label("Hello, world!")
Button("Click me", on_click=lambda: setattr(label, "text", "Clicked!"))
app.run()
What is included
| Area | Classes and functions |
|---|---|
| Windows | App, Window (modal windows, shortcuts, on_close, on_resize) |
| Layout | VBox, HBox, Stack, Spacer, Flex |
| Standard controls | Label, Button, CheckBox, RadioButton, TextBox, ComboBox, ListBox, GroupBox |
| Common controls | ProgressBar, Slider, SpinBox, StatusBar, DatePicker, TimePicker, ListView, TreeView, TabControl / TabPage |
| Menus | MenuBar, Menu, MenuItem, MenuSeparator, ContextMenu (context_menu= on any control) |
| Dialogs | message_box, ask_yes_no, show_info, show_error, input_box, open_file, save_file, pick_folder, choose_color, choose_font |
| Other | Timer, Event, Scale |
Examples
Run them with python examples/<file>.py:
01_form.py: registration form with live validation02_file_browser.py: menu,TreeView(lazy loading),ListView,StatusBar03_settings.py: settings dialog with tabs, groups, slider, spin box04_editor.py: text editor with file dialogs and shortcuts05_progress.py: long task in a worker thread, reporting back withapp.invoke
Known Limits (Beta)
- Windows only, by design.
- Standard Windows controls only. Dark mode is not supported (classic controls have no documented dark mode); an experimental mode may follow later.
- No grid layout yet (
VBox/HBox/Stacknest freely). - No rich text, no custom-drawn controls, no images in controls yet.
- The API may still change before 1.0; unstable parts are marked in the docstrings.
- CI tests real windows on Windows (x64 and x86, Python 3.11 to 3.13) but cannot test mouse and keyboard behavior, native dialogs or multi-monitor DPI changes interactively. Reports from real machines are welcome.
Tests
python -m unittest discover -s tests
Logic tests (layout, scaling, shortcuts, dispatch) run everywhere; tests that create real windows run on Windows only and are skipped elsewhere. GitHub Actions runs both.
Feedback
This is a beta. Please try it and tell me what is missing or broken: report a bug or give feedback. Useful details: Windows version, display scaling, Python version, and a small script.
License
Distributed under the MIT License. See LICENSE.md for details.
🇩🇪 BareWinGUI (Deutsch)
BareWinGUI ist ein reines GUI-Framework für Windows: native Fenster und Steuerelemente aus Python, nur mit ctypes und den Windows-Systembibliotheken. Es ist der Python-Nachfolger des GUI-Teils von AutoIt (GUICreate/GUICtrlCreate), mit Python-typischer API und Flexbox-artigem Layout.
Kernmerkmale
- Keine Abhängigkeiten: nur die Python-Standardbibliothek.
- Nur native Steuerelemente: Standard-Controls (
user32) und Common Controls (comctl32v6), von Windows gestaltet. BareWinGUI zeichnet nichts selbst. - Flexbox-artiges Layout:
VBox,HBox,Stack,Spacermitgrow,shrink,width,height,min_*,max_*,align_self, aufgebaut mitwith-Blöcken. - Hohe DPI: Per-Monitor-V2, alle Größen in DIPs.
- Pythonische API: Ereignisse sind Handler ohne Argumente (
on_click=...), Eigenschaften statt Getter/Setter. - Thread-sichere Aktualisierung:
app.invoke(fn)undapp.call(fn). - Ziele: Windows 10 / 11, Python 3.11+, x64 und x86. Das Paket lässt sich überall importieren; eine
Appbraucht Windows.
Installation
pip install --pre barewingui # beta: pip needs --pre for pre-releases
Schnellstart
from barewingui import App, Button, Label, VBox, Window
app = App()
with Window("Hello", size=(320, 160)) as win:
with VBox(padding=16, gap=10):
label = Label("Hello, world!")
Button("Click me", on_click=lambda: setattr(label, "text", "Clicked!"))
app.run()
Beispiele
Start mit python examples/<Datei>.py: Formular mit Prüfung (01_form.py), Dateibrowser (02_file_browser.py), Einstellungsdialog (03_settings.py), Texteditor (04_editor.py), Fortschritt mit Arbeitsthread (05_progress.py).
Bekannte Grenzen (Beta)
- Nur Windows, bewusst.
- Nur Standard-Windows-Controls; kein Dark Mode (später vielleicht experimentell).
- Noch kein Grid-Layout, kein Rich Text, keine eigengezeichneten Controls.
- Die API kann sich vor 1.0 noch ändern.
- Die CI testet echte Fenster unter Windows (x64 und x86, Python 3.11 bis 3.13), aber keine Maus-/Tastaturbedienung, nativen Dialoge oder DPI-Wechsel zwischen Monitoren. Rückmeldungen von echten Rechnern sind willkommen.
Tests
python -m unittest discover -s tests
Rückmeldung
Das ist eine Beta. Probier es aus und sag mir, was fehlt oder kaputt ist: Fehler melden oder Rückmeldung geben. Hilfreich: Windows-Version, Skalierung, Python-Version und ein kleines Skript.
Lizenz
MIT-Lizenz, siehe LICENSE.md.
Metadata
Release files for barewingui 0.2.0b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| barewingui-0.2.0b1.tar.gz | 57.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| barewingui-0.2.0b1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.6 kB
Release files / barewingui-0.2.0b1.tar.gz
| Download URL | barewingui-0.2.0b1.tar.gz |
|---|---|
| Size | 57.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0623f067f1c42875ddece10c770f7457d97f43817d1947da1de51b987084f069
|
|
BLAKE2b-256 checksum How to use checksums |
4fbc5eedec3d52a782f106817d7212081442b9451a2cef25f18c1e1a1804d62e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / barewingui-0.2.0b1-py3-none-any.whl
| Download URL | barewingui-0.2.0b1-py3-none-any.whl |
|---|---|
| Size | 68.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bedaf474e158549ba31532fc4084311af6e54dbd4e115ff340c4882482efbcf3
|
|
BLAKE2b-256 checksum How to use checksums |
668680fe36cc5ce2f7aa69c18655214df1091c3a331138b242caf6cc49df726f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency log