Modern PySide6 GUI toolkit with rain effects — by SirAbody
Project description
SirAbody GUI Library
Modern PySide6 GUI toolkit with realistic rain physics, dark theme, and beautiful buttons.
Install
pip install sirabody
Easy Mode (For Beginners)
One line. That's it.
import sirabody
sirabody.easy("My App", ["Button 1", "Button 2", "Button 3"])
With a callback
import sirabody
def clicked(button_name):
print(f"{button_name} was clicked!")
sirabody.easy("My App", ["Save", "Load", "Settings"], on_click=clicked)
Easy Mode Options
| Parameter | Type | Description |
|---|---|---|
title |
str |
App title (required) |
button_names |
list |
List of button name strings (required) |
subtitle |
str |
Subtitle text |
on_click |
callable |
Called with button name on click |
Colors are assigned automatically!
Master Mode (Full Control)
For developers who want to customize everything.
from sirabody import SirAbodyApp
def on_click_1():
print("Button 1!")
app = SirAbodyApp(
title="My App",
subtitle="Built with SirAbody",
title_color="#00BFFF",
buttons=[
{"text": "Button 1", "color": "#FFD700", "callback": on_click_1},
{"text": "Button 2", "color": "#FF6B6B"},
{"text": "Button 3", "color": "#69F0AE"},
{"text": "Button 4", "color": "#40C4FF"},
],
columns=2,
# Rain customization
rain_config={
"rain_color": (220, 245, 255),
"rain_speed": (6, 14),
"rain_count": 100,
"splash_enabled": True,
"mouse_interaction": True,
},
version="v1.0",
)
app.run()
Button Options
| Key | Type | Default | Description |
|---|---|---|---|
text |
str |
Required | Button label |
color |
str |
#E0F7FA |
Text color (hex) |
callback |
callable |
None |
Function to call on click |
bg_color |
str |
#2a2a2a |
Background color |
hover_color |
str |
#3a3a3a |
Hover background color |
App Options
| Parameter | Type | Default | Description |
|---|---|---|---|
title |
str |
"SirAbody" |
Header title |
subtitle |
str |
"Application" |
Header subtitle |
buttons |
list |
[] |
List of button dicts |
version |
str |
"v1.0" |
Footer version text |
website_url |
str |
"https://www.SirAbody.com" |
Website link button URL |
discord_url |
str |
"https://discord.gg/509" |
Discord link button URL |
window_title |
str |
Same as title |
Taskbar window title |
icon_path |
str |
None |
Path to .ico file |
title_color |
str |
"#00BFFF" |
Title text color |
bg_opacity |
int |
180 |
Background opacity (0-255) |
rain_enabled |
bool |
True |
Enable/disable rain |
columns |
int |
2 |
Number of button columns |
status_text |
str |
"Ready" |
Default footer status |
status_color |
str |
"#90EE90" |
Status text color |
rain_config |
dict |
{} |
Rain customization (see below) |
width |
int |
900 |
Window width |
height |
int |
650 |
Window height |
Rain Config Options
| Key | Type | Default | Description |
|---|---|---|---|
rain_color |
tuple |
(220, 245, 255) |
Drop color (R, G, B) |
splash_color |
tuple |
(200, 240, 255) |
Splash particle color (R, G, B) |
rain_speed |
tuple |
(6, 14) |
Speed range (min, max) |
rain_length |
tuple |
(15, 30) |
Drop length range (min, max) |
rain_count |
int |
100 |
Foreground drop count |
rain_count_bg |
int |
150 |
Background drop count |
splash_enabled |
bool |
True |
Enable splash particles on collision |
mouse_interaction |
bool |
True |
Drops interact with mouse cursor |
mouse_radius |
int |
25 |
Mouse collision radius in pixels |
collision_enabled |
bool |
True |
Drops collide with buttons |
physics_fps |
int |
120 |
Physics engine tick rate |
wind_strength |
float |
0.3 |
Wind effect on window drag |
sparkle_enabled |
bool |
True |
Sparkle at drop head |
sparkle_color |
tuple |
(255,255,255,240) |
Sparkle color (R, G, B, A) |
Runtime Control (Master Mode)
# Change status bar
window.set_status("Processing...", "#FFA500")
# Show/hide progress bar
window.set_progress(50, "#69F0AE") # 50%
window.set_progress(-1) # Hide
# Enable/disable buttons
window.set_buttons_enabled(False)
# Get a specific button
btn = window.get_button(0)
# Control rain at runtime
rain = window.get_rain()
rain.set_rain_color(255, 0, 0) # Red rain!
rain.set_rain_count(300) # More drops
rain.set_rain_speed(15, 30) # Faster
rain.set_wind(0.8) # Stronger wind
Individual Components
from sirabody import ModernButton, CircularLinkButton, RainOverlay, GlowFrame
| Component | Description |
|---|---|
ModernButton |
Dark themed button with hover/press effects |
CircularLinkButton |
Round button with web/discord icon + URL |
RainOverlay |
Physics-based rain widget (120Hz) |
GlowFrame |
Transparent container frame |
License
MIT License - Made by SirAbody
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sirabody-1.1.0.tar.gz
(22.0 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
sirabody-1.1.0-py3-none-any.whl
(22.0 kB
view details)
File details
Details for the file sirabody-1.1.0.tar.gz.
File metadata
- Download URL: sirabody-1.1.0.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28ce3081b74a8d9ee118f67acf54b24a4ec0356de255fcafc45644c22a4298fa
|
|
| MD5 |
29946603cd87357b9d27c34ddf93afed
|
|
| BLAKE2b-256 |
b93bd38f6aec225a3f48a0be39a3ae34c4326b0841922362c500ddc3dcd3abf2
|
File details
Details for the file sirabody-1.1.0-py3-none-any.whl.
File metadata
- Download URL: sirabody-1.1.0-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90d297a2d5ba780e7498effb2fd63ca63ac817b81a0cbd6f7aec98fdb42039df
|
|
| MD5 |
596f1627d58e101d4dea28e493a5355c
|
|
| BLAKE2b-256 |
13d938fb4d74f998ee0ceeba26a6184074927715959561c72e3ed8a4356fb0cb
|