UI Engine
Project description
UI-Engine-V2
High-performance pygame based UI framework with render-on-change architecture.
Features
- High Performance: Hybrid-mode-rendering ensures no compute is wasted on re-rendering unchanged elements.
- Easy to Use: Intuitive API design makes it simple to create and manage UI components.
- Events for everything: Comprehensive event system for handling user interactions, components have their own events.
- Immediate themes: Style system allows immediate color palette changes across the entire application with one function call.
- Text rendering: Justified text rendering with minimal gaps.
- Easily extensible: You can easily make your own components by extending the base classes.
- Maintainable: Code quality is always in mind, never sacrificing readability for quick fixes.
- Lightweight: Minimal dependencies and a small footprint make it suitable for various projects.
Install
pip install ui-engine
QuickStart
import engine as ui
# Create window
window = ui.Window((800, 600))
# Create a frame
frame = ui.Frame(window, (10, 10), (300, 200))
# Add components
label = ui.Label(
frame,
(10, 10),
"Hello World!",
(None, 18)
)
button = ui.Button(
frame,
(10, 50), # Pos
"Click Me",
(100, 30), # Size
on_click=lambda b: print("Button clicked!")
)
field = ui.Field(
frame,
(10, 90), # Pos
(None, 14), # Font
"Type here...", # Text
size=(200, 25)
)
# Run the application
window.mainloop()
Components
- Frame: Basic rounded rectangle container
- Button: Interactive button with hover states and click handlers
- Label: Text display component with wrapping support
- Field: Text input component with multiline support and IME
- CheckBox: Toggle checkbox with customizable styling
- Radio: Radio button with easy group management
- Toggle: Switch-style toggle component
- Slider: Value slider with customizable range
- ProgressBar: Progress indicator with ultra-smooth animations
- Dropdown: Responsive dropdown menu
- TabFrame: Tab container for organizing content
- SegmentedButton: Multi-option button component
- IconButton: Button component for icon-based interactions
License
This project is licensed under the PolyForm Noncommercial License 1.0.0 - see the COPYING.md file for details.
Contact Omena0 if you want an exception.
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
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 ui_engine-7.1.0.tar.gz.
File metadata
- Download URL: ui_engine-7.1.0.tar.gz
- Upload date:
- Size: 48.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41388b0620e7abaf0a162ca86d687af29648a6c706cb9c13779e769fbb067ed6
|
|
| MD5 |
bf575d61d94040ed05e55d76f64a8726
|
|
| BLAKE2b-256 |
c48d272ad0e521f3c5b813ee35a92fe4d9d5f9a73a116c86bf855b3215a2a32d
|
Provenance
The following attestation bundles were made for ui_engine-7.1.0.tar.gz:
Publisher:
publish.yml on Omena0/UI-Engine-V2
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ui_engine-7.1.0.tar.gz -
Subject digest:
41388b0620e7abaf0a162ca86d687af29648a6c706cb9c13779e769fbb067ed6 - Sigstore transparency entry: 523993348
- Sigstore integration time:
-
Permalink:
Omena0/UI-Engine-V2@9ca773f09cca7bd5226c4b30451821da426fe685 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Omena0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9ca773f09cca7bd5226c4b30451821da426fe685 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ui_engine-7.1.0-py3-none-any.whl.
File metadata
- Download URL: ui_engine-7.1.0-py3-none-any.whl
- Upload date:
- Size: 56.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f7a6b3b70512f68c3faa8b2d362f8fc3748eee1ce2e9ecace1fe33767785822
|
|
| MD5 |
1115b82fe634523f1c6c3b68702de343
|
|
| BLAKE2b-256 |
397afc3f1c994de3637d9f009940c44034b86a4af2c7ac1543e8a07a4bbac5ed
|
Provenance
The following attestation bundles were made for ui_engine-7.1.0-py3-none-any.whl:
Publisher:
publish.yml on Omena0/UI-Engine-V2
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ui_engine-7.1.0-py3-none-any.whl -
Subject digest:
5f7a6b3b70512f68c3faa8b2d362f8fc3748eee1ce2e9ecace1fe33767785822 - Sigstore transparency entry: 523993375
- Sigstore integration time:
-
Permalink:
Omena0/UI-Engine-V2@9ca773f09cca7bd5226c4b30451821da426fe685 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Omena0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9ca773f09cca7bd5226c4b30451821da426fe685 -
Trigger Event:
push
-
Statement type: