Every game needs a user interface that matches its look and feel. The purpose of glooey is to help you make such an interface. Towards this end, glooey provides 7 powerful placement widgets, a label widget, an image widget, 3 different button widgets, a text entry widget, a variety of scroll boxes and bars, 4 different dialog box widgets, and a variety of other miscellaneous widgets. The appearance of any widget can be trivially customized, and glooey comes with built-in fantasy, puzzle, and 8-bit themes to prove it (and to help you hit the ground running if your game fits one of those genres).

The philosophy behind glooey is that deriving subclasses from a basic set of widgets with no default style is the most elegant way to control how widgets look. This approach is flexible because subclasses can customize or override most aspects of the basic widgets. But it’s also surprisingly succinct and powerful: specifying a style is usually as simple as setting a class variable, and styles can be easily composed using either inner classes or previously defined widgets. This philosophy makes glooey easy to get started with, and powerful enough to support even the most complicated games.

https://img.shields.io/pypi/v/glooey.svg https://img.shields.io/pypi/pyversions/glooey.svg https://img.shields.io/github/workflow/status/kxgames/glooey/Test%20and%20release/master https://img.shields.io/readthedocs/glooey.svg


The base class from which all widgets derive.


Top-level widgets that manages the interface between pyglet and glooey.


Widgets whose primary role is to contain other widgets.


Widgets that react to being clicked on.


Widgets that can display images


Widgets that can display and input text.


Widgets that allow the user to scroll through content that would otherwise be too big to fit on the screen.


Widget that appear in front of everything else to quickly communicate something to the user.


Widgets that don't really fit into any of the other categories.



General-purpose utilities used throughout the project.