Skip to main content

A UIKit for Pygame

Project description

Contributors Issues License Publish to PyPI

img.png

Getting Started

pip install PygameUIKit

Easy to use

import pygame
from PygameUIKit import Group, button, slider

W = 800
H = 600


class MyGame:
    def __init__(self):
        # You class code here
        self.window = pygame.display.set_mode((W, H), pygame.RESIZABLE)
        # Ui
        self.ui = Group()  # Create a group to hold all the ui elements. This is filled with the ui elements below thanks to the ui_group parameter
        self.btn_start = button.ButtonText("Start",
                                           self.start,
                                           rect_color=(85, 145, 92),
                                           fixed_width=200,
                                           border_radius=10,
                                           text_align="center",
                                           ui_group=self.ui)

        self.btn_quit = button.ButtonText("Quit", self.quit,
                                          rect_color=(181, 71, 71),
                                          fixed_width=180,
                                          border_radius=10,
                                          text_align="center",
                                          ui_group=self.ui)

    def run(self):
        while True:  # Game loop
            # Your game code here

            # Ui
            # Handle events
            events = pygame.event.get()
            for event in events:
                if event.type == pygame.QUIT:
                    pygame.quit()
                self.ui.handle_event(event)  # Handle the events for all the ui elements

            # Draw
            self.window.fill((0, 0, 0))
            self.btn_start.draw(self.window, *self.btn_start.surface.get_rect(center=(W // 2, H // 2 - 50)).topleft)
            self.btn_quit.draw(self.window, *self.btn_quit.surface.get_rect(center=(W // 2, H // 2 + 50)).topleft)
            pygame.display.flip()

    def start(self):
        print("Starting")

    def quit(self):
        print("Quitting")
        pygame.quit()


if __name__ == "__main__":
    pygame.init()
    MyGame().run()

Just put all your ui elements in a group and call group.handle_event(event). You will have to draw the elements yourself with element.draw(win, x, y).

That is because you might want to have a custom layout where the x and y coordinates are calculated on the fly.

Available elements

  • Buttons
    • button.ButtonText
    • button.ButtonImage
    • button.ButtonImageText
    • button.ButtonPngIcon
    • button.ButtonTwoStates
    • button.ButtonThreadText
  • Slider
  • ComboBox
  • TextInput
  • Label
  • BarChart

And more to come :)

Contributing

Feel free to do a pull request if you want to add a new element or improve the code.

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

PygameUIKit-0.1.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

PygameUIKit-0.1.1-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file PygameUIKit-0.1.1.tar.gz.

File metadata

  • Download URL: PygameUIKit-0.1.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for PygameUIKit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 826ed450886b38c95f74965605290e82cac98510db9550a26fbd78f571b293a8
MD5 ba1026800381ed639f7646fa9c6f4491
BLAKE2b-256 5cb081738f9b41a1f2bc59a8114f48d73247482e5b24ab6337f848ede631bf99

See more details on using hashes here.

File details

Details for the file PygameUIKit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: PygameUIKit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for PygameUIKit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6f283c6bd71d3277319de929f6bab08f14d955f9973802c8ee75b36db9462ab0
MD5 aa7beb801b8f789b5b26b9a8a9bbe2c2
BLAKE2b-256 6822ffec80c42e5b1e61a4c4e64aa6436a037650e97a324a5eb5a30db83e719d

See more details on using hashes here.

Supported by

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