Skip to content

Huzaifa-Atiq/PyUIkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


PyUIkit is a modern, web-like, component-based Python GUI framework built on top of CustomTkinter. It aims to bring simplicity and web-like component structure to Python GUI development, allowing developers to create windows, divs, and components without dealing with complex layout management. It allows you to create beautiful and interactive desktop applications with minimal code, using Div-based layouts and reusable UI components.


Features

  • Create nested layouts with Div containers.
  • Use Text, Input, Button components and more.
  • Interactive components with event handling.
  • Component IDs for dynamic updates.
  • Easy to use for both beginners and experienced developers.
  • Supports modern styling and dark/light themes (future updates).

Installation

pip install pyuikit

Getting started

  1. Create a simple window
from pyuikit import Body

app = Body(width=400, height=300, bg_color='white')
app.run()

This creates a blank window with the specified size and background color.

window

  1. Add components inside a Div
from pyuikit import Body, Div
from pyuikit.components import Text, Button, Input

def greet():
    name = Input.get_input(id='name_input')
    Text.set_text(id='greeting', new_text=f'Hello, {name}!')

app = Body(width=400, height=300, bg_color='white')

Div(
    width=360,
    height=250,
    children=[
        Text(text='Enter your name:'),
        Input(placeholder='Name',id='name_input'),
        Button(text='Greet',on_click=greet),
        Text(text='', id='greeting')
    ]
)

app.run()

Note: Every app must have at least one top-level Div to hold components.

window

Documentation:

Full documentation and examples:

Other components:

Example Applications:



Note: PyUIkit is now in a stable release, but issues may still occur. We welcome and appreciate contributions! Feel free to submit PRs or report any problems via the GitHub Issues tab.