A lightweight UI framework for Python via ctypes and Win32 API. Now with Direct2D Render!
Project description
uui/cuil is a custom lightweight UI library written in Python using only ctypes. It provides direct interaction with the Windows API without heavy dependencies.
PULL REQUESTS ARE WELCOME!
installation
pip install uui-cuil
zero dependencies
Windows backend
Autors:
- zcveo5 (i am)
Features
- Lightweight & Fast: Zero external dependencies, pure Python + ctypes.
- Frameless Window Support: Modern borderless windows while keeping native Windows 11 animations, resizing, and shadows.
- Per-pixel Scroll: Built-in smooth, pixel-perfect scrolling system.
- Customizable Render System: Uses native
gdi32out of the box, with full support for plugging in your own rendering backend (GDI+, Direct2D, etc.). - Low-level Control: Direct access to
WND_PROCsand low-level Win32 messages likeWM_MOUSEWHEELorWM_LBUTTONDOWN. - Flexible Event Binding: Powerful binding system with parsed or raw
wParam/lParamevent data exposed directly to your code.
Limitations:
- now only Windows backend ready, you can write your own and send pull request!
Rules for your own backend
- use only built-in libraries
- python 3.13 and newer
- use uui.backend.abstract and Windows backend as base
- form messages to uui.backend.events messages
Examples:
Hello world window
import uui
root = uui.Window('Hello World') # Create a window with the title "Hello World"
uui.Label(root, # Parent (window or another widget)
'Hello World!', # Text
'#000000', # Color
).pack()
root.start()
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
uui_cuil-0.3.0.tar.gz
(1.3 MB
view details)
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 uui_cuil-0.3.0.tar.gz.
File metadata
- Download URL: uui_cuil-0.3.0.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
832d0818084979df4541e096f2dc315274bd3285190868fc6fa6e429caee96db
|
|
| MD5 |
14cee40a25b4e0aa7ae9dca79a266149
|
|
| BLAKE2b-256 |
c6677abb25fe2ac49c2291aa75ba1a310e58387040ff92ebbc3d4b6a2b50e71d
|
File details
Details for the file uui_cuil-0.3.0-py3-none-any.whl.
File metadata
- Download URL: uui_cuil-0.3.0-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
865456917aeb7c1acd9ec189dfa88a206dcd6215c073ec8372da34bae1b8b79e
|
|
| MD5 |
006397a4b7da8e335932183110cb0c96
|
|
| BLAKE2b-256 |
df9ed20976efc7cd2895a51a339f8373fbfda040125e739f7ffc3948bb715074
|