Skip to main content

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.

Python PySide6 License

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


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.0.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sirabody-1.0.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file sirabody-1.0.0.tar.gz.

File metadata

  • Download URL: sirabody-1.0.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for sirabody-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d89a47870fb0e8b87a997d3156a69b6f7dc918dc664c7f4223454cf766e624a8
MD5 ce15ad5847e63cc2290a291d9493a0dd
BLAKE2b-256 e52a3a35f1b702662c3b020fff2c11a29973f8c28cb08f6a22a8f7acb03ca43c

See more details on using hashes here.

File details

Details for the file sirabody-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sirabody-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for sirabody-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e56119feef70e37e27aa6395d53f9616d05f9d4229affe95c8645428a7eccb9
MD5 2890542e61a56d32decc44da2cbc8bcc
BLAKE2b-256 78317601d6a684e199eb3ec42d1ce6975b20212982426231820f042def319fbe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page