A lightweight frameless UI framework for Python via ctypes and Win32 API
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.2.0.tar.gz
(159.4 kB
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
uui_cuil-0.2.0-py3-none-any.whl
(163.1 kB
view details)
File details
Details for the file uui_cuil-0.2.0.tar.gz.
File metadata
- Download URL: uui_cuil-0.2.0.tar.gz
- Upload date:
- Size: 159.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
931b4f6968840078ae5fd2f0e88eba8011a0dfccbd662c3290a327b80c63db27
|
|
| MD5 |
0bed736672187c721c87bd1805142b37
|
|
| BLAKE2b-256 |
d02f2f2a44bbeea9b823854885be92a3adbf3975c6111ea7d912c77a61001f39
|
File details
Details for the file uui_cuil-0.2.0-py3-none-any.whl.
File metadata
- Download URL: uui_cuil-0.2.0-py3-none-any.whl
- Upload date:
- Size: 163.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99e2b429a558c18a554254fca43d7911b56aec75c7d99e14834842effc919c76
|
|
| MD5 |
04dfa61d8769c5bc1091019e22aebfb5
|
|
| BLAKE2b-256 |
65e430daa04b4b40e284737187b32845bfa94cf6b1e3a60d139a8fe658798978
|