Skip to main content

EasyPygameWidgets

An easy-to-use UI widget library for pygame, featuring customizable buttons, sliders, text entries, screen management and much more.

Features

  • easy integration: seamlessly works with existing pygame projects
  • customizable widgets: nearly infinite styling options for colors, sounds, cursors, and more
  • screen management: built-in screen system for creating different GUIs

Installation

Windows

pip install easypygamewidgets

Linux/macOS

python3 -m pip install easypygamewidgets

Quick Start

import pygame

import easypygamewidgets as epw

pygame.init()
window = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()

# link the pygame window
epw.link_pygame_window(window)

# create a button
button = epw.Button(text="Click Me!")
button.place(300, 100)

# create a slider
slider = epw.Slider(text="Volume", start=0, end=100, auto_size=False, width=300)
slider.place(300, 200)

# create a text entry
entry = epw.Entry(placeholder_text="Type here...", auto_size=False, width=250)
entry.place(300, 400)


def draw():
   window.fill((30, 30, 30))


# main game loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        # handle widget events
        epw.handle_event(event)

    # handle special widget events
    epw.handle_special_events()

    # draw all widgets
    epw.flip(draw)

    pygame.display.update()
    clock.tick(60)

pygame.quit()

Widgets Documentation

All examples will use the same start template code.

Screen

A container for managing groups of widgets with shared visibility and state.

example code

Button

A customizable button widget to run commands when interacted.

example code

Slider

A slider for selecting values within a specific range.

example code

Entry

A text entry with selection and clipboard support.

example code

Label

A text display that can be used to drag it into places or show text.

example code

Surface (images etc.)

This converts your pygame surfaces into an easypygamewidgets widget that can be used in screens. (All pygame surface commands can be applied to the "surface" attribute of your widget.)

example code

Timekeeper

A text display that can show a timer or stopwatch.

example code

Tooltips

A text display that is only shown when you hover over a widgets.

example code

Module Functions

Core Functions

# link your pygame window (required before using widgets)
epw.link_pygame_window(pygame_window)

# handle pygame events (call in event loop)
epw.handle_event(pygame_event)

# handle special events (call outside event loop)
epw.handle_special_events()

# draw all widgets to the linked window
epw.flip()

Examples (COMING SOON)

Check the examples directory for complete working examples:

  1. all widgets example - simple demo of all widgets
  2. **screens with animations ** - multiple screens with transitions
  3. settings screen - interactive settings panel with sliders
  4. login form - form with entries and validation
  5. bindings - binding events to widgets

Requirements

  • python
  • pygame
  • requests (for update checking in background once)

I recommend using the latest version of libraries.

Contributing

Contributions are welcome! Please feel free to submit a pull request. Of course will be mentioned :)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support


Made with ❤️ by PizzaPost

Metadata

Release files for easypygamewidgets 26.29

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for easypygamewidgets 26.29
File Size Uploaded
easypygamewidgets-26.29.tar.gz 705.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for easypygamewidgets 26.29
File Interpreter ABI Platform
easypygamewidgets-26.29-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / easypygamewidgets-26.29.tar.gz

Download URL easypygamewidgets-26.29.tar.gz
Size 705.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c66d2398109c675b63076fbf0306abc4f233835b6322c9169a25d58dddf4df98
BLAKE2b-256 checksum
How to use checksums
0d966071cef743d429650fdd88da356443fcb1e3a8980dd34dfb5f95022fae85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / easypygamewidgets-26.29-py3-none-any.whl

Download URL easypygamewidgets-26.29-py3-none-any.whl
Size 720.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af92b1521561409ecdc3d9f239721f793705c6f7c24c0765a8457261a770f601
BLAKE2b-256 checksum
How to use checksums
44e427aa9078fe959cd080aafef7335743f6c6078445d363b56d1ddb793bb78a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

26.45

2 release files

26.44

2 release files

26.43

2 release files

26.42

2 release files

26.41

2 release files

26.40

2 release files

26.39

2 release files

26.38

2 release files

26.37

2 release files

26.36

2 release files

26.35

2 release files

26.34

2 release files

26.33

2 release files

26.32

2 release files

26.31

2 release files

26.30

2 release files

This release

26.29 This release

2 release files

26.28

2 release files

26.27

2 release files

26.26

2 release files

26.25

2 release files

26.24

2 release files

26.23

2 release files

26.22

2 release files

26.21

2 release files

26.20

2 release files

26.19

2 release files

26.18

2 release files

26.17

2 release files

26.16

2 release files

26.15

2 release files

26.14

2 release files

26.13

2 release files

26.12

2 release files

26.11

2 release files

26.10

2 release files

26.9

2 release files

26.8

2 release files

26.7

2 release files

26.6

2 release files

26.5

2 release files

26.4

2 release files

26.3.1

2 release files

26.3

2 release files

26.2

2 release files

26.1

2 release files

26.0

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page