All of these kits were easily integrated into my own main loop, not requiring use of their own. Each of them also allowed me to set up my own display in pygame.display and plug it into the GUI. None of them are documented to my satisfaction. ;(

Starting with the least:

Mike Leonhard’s GUI is one of two that implements a scrolling widget, but otherwise only implements a text entry widget and a button. It does handle wrapped text in labels. The biggest knock on this kit is that it overrides the keyboard repeat, and getting the keystroke entry to work is troublesome. The kit has not been maintained in two years, and Mike has moved on to other things, based on his web site.

Poutine, by Shandy Brown, separates itself from the others in that it is sprite-based. The widgets are sprites, located and drawn in the same fashion as other sprites in the game. The event loop does need to handle the various input events separately, rather than handing them off en-mass to a GUI event handler; each widget-sprite handles its own inputs. The range of widgets provided is very limited, including only buttons and text input.

The PGU GUI, part of Phil’s pyGame Utilities, is a fairly comprehensive kit, providing most of the features my sample wanted. It does not provide a scrolling widget, but it does provide fairly sophisticated text rendering functions, including the ability to display html. It also includes a menu system (unique among these GUIs), dialogue boxes, and a ‘toolbox’ feature which selects between multiple options. This GUI is the most attractive of the set, also. Some features are not completely implemented, such as the ability to disable widgets.

The Ocemp GUI is the most feature rich of the GUIs I reviewed. The only features my sample wanted that it did not provide were image maps and multi-line edit, and none of the other kits provided those either. It provides a scrolling widget. The documentation provided in the code is as good as any, and the author is promising a usage guide document. The most serious limitation I found is the drab grey blocky appearance, and that may be a matter of my not understanding how to manipulate the styles.

I have had opportunity to correspond with both Marcus von Appen (Ocemp) and Phil Hassey (PGU) in doing these evaluations, and found each of these gentlemen to be helpful and interested in furthering use of their libraries.

For more detail on each of the four GUIs and source code for the sample pages, see my prior posts. If you are evaluating GUIs for a Pygame game, please do install the Ocemp and PGU libraries, and download/copy and run my sample scripts for each, to see for yourself how they behave.

If you are reading this on the blogs native page (on, links to each of the libraries is found in the right side bar. Otherwise, Googling will find them.