pygame is
Simple DirectMedia Layer is
Site Swing

OcempGUI - 0.2.1

Marcus von Appen (marcusva)



OcempGUI is a small toolkit, which comes with various modules suitable for event management, user interfaces, 2D drawing and accessibility.

OcempGUI enables developers to enhance their python and/or pygame applications and games easily with graphical UI elements such as buttons, entry boxes, scrolling abilities and more as well as simple event brokers or features, which enhance the program by adding accessibility to its objects.

It can save a developer much time by providing a broad range of drawing routines and ready-to-use event capable object types. The developer can focus on the main tasks instead of taking care about needed low-level components, which are given to him with OcempGUI.



  • New Magnifier class, a magnification tool for pygame screens.
  • String.* functions now allow additional style flags to be passed.
  • New method apply_font_styles() in String module to apply different rendering styles to a font.
  • New Subject and IObserver class for simple Observer pattern needs.
  • New method clear() in EventManager class, which removes all objects and signals from all event queues.
  • New SIG_SCREENCHANGED signal, which indicates changes of the bound 'screen' attribute of the Renderer.
  • New method create_style() in BaseWidget class, which is a replacement for the deprecated get_style() method.
  • New WidgetStyle dictionary class, which can track key-value changes.
  • New ImageLabel class for simple image displays.
  • New style entry 'shadowcolor' for adjusting dropshadow effects.
  • New method clear() in Renderer class, which removes all objects from the Renderer layers.


  • Fixed emittance of SIG_TICK events on all layers, if an event grabber is set.
  • The Style class now makes use of WidgetStyle dictionaries to track style changes.
  • Fixed drawing in the draw_dropshadow() method of the DefaultEngine class for larger shadow values.
  • Fixed doubled assignment of the 'screen' attribute in the Renderer class on VIDEORESIZE events.
  • Fixed a bug in the remove_index() method of the Renderer class for empty arguments.
  • Fixed the size calculation for larger spacing values in the Table class.
  • Fixed a focusing bug in the Window class, which prevented children to receive the correct input focus under some circumstances.
  • Fixed depth assignment for widgets attached to the Bin or Container class.
  • Fixed 'indexable' assignment for the 'controls' attribute of the BaseWidget class.
  • Fixed creation of the Table internals on invocation of its constructor.
  • Fixed event.handled assignment on clicks in Entry class.
  • The get_style() method of the BaseWidget class is deprecated.


Home Page:


click to view original size


OcempGUI - 0.2.9 - May 10, 2008
OcempGUI - 0.2.8 - Jan 10, 2008
OcempGUI - 0.2.7 - Mar 23, 2007
OcempGUI - 0.2.6 - Feb 1, 2007
OcempGUI - 0.2.5 - Jan 22, 2007
OcempGUI - 0.2.4 - Jan 8, 2007
OcempGUI - 0.2.3 - Nov 20, 2006
OcempGUI - 0.2.2 - Oct 19, 2006
OcempGUI - 0.2.1 - Aug 25, 2006
OcempGUI - 0.2.0 - Jul 22, 2006
OcempGUI - 0.1.2 - Feb 16, 2006
OcempGUI - 0.1.1 - Dec 9, 2005
OcempGUI - 0.1.0 - Nov 24, 2005
OcempGUI - 0.0.9 - Oct 13, 2005
OcempGUI - 0.0.8 - Sep 17, 2005
OcempGUI - 0.0.8-NYR - Sep 7, 2005 account Comments

If you wish to leave a comment with your account, please sign in first.

September 29, 2011 4:35am - Snow Globe - nickname: (snowglobe)
<back from spending the afternoon looking more deeply into OcEmpGui> Seriously. Marcus has laid down a solid foundation here that could really go someplace! As it stands, this package is extremely robust and feature-rich, very well-documented, requires nothing beyond pygame and numeric/numpy, and is actually quite easy to get started with (pull open the html manual on your second screen, jump into docs/examples/ and work your way up to docs/examples/

Why hasn't this gotten more attention?? A name change, maybe ... EasyPygameGUI?
September 28, 2011 8:47pm - Snow Globe - nickname: (snowglobe) - 5/5
This really is terrific stuff. Works great up to Python 2.4, but then starts getting sluggish for some reason.

pygame powers-that-be should really consider taking this into trunk, imho
January 11, 2008 6:34am - Marcus von Appen - nickname: (marcusva)
You can use the ocemp-devel mailing list at or the wiki at to ask any question, you have.

@Mike: Heavy on requirements? Python and Pygame with surfarray support are not heavy, I think ;-).
January 11, 2008 4:55am - Ivan DelSol - nickname: (sunspider) - 4/5
Hey this is awesome stuff. I'm an experienced game engine programmer just starting with Python and Pygame. After researching all the guis on this page I decided on yours. Do you have a forum on this package somewhere? I'd love to talk with other users and share knowledge. A few questions for you too, if you're interested.
January 10, 2008 8:51am - pymike - nickname: (pymike) - 5/5
AMAZING. A little heavy on requirements, but still outstanding. Well done.
July 19, 2007 4:47pm - Anonymous - nickname: (pywiz32)
The program kept hanging when I tried to install it on my win98, so i had to change line 28 to

return not os.system ("pkg-config > NUL") == 0

for it to work
August 5, 2006 1:22pm - Ryan Charpentier - nickname: (ryan) - 5/5
I've only tried the widgets portion of this package but the selection and functionality of the widgets really is top notch. Excellent docstrings for all the classes as well. Only thing that takes time is plugging his Renderer into your code. Make sure you check's documentation if you are having trouble.

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
Feb 21, 2017

Jan 31, 2017

Jan 24, 2017

Jan 18, 2017

Jan 7, 2017

Dec 30, 2016

Dec 8, 2016

Nov 28, 2016

Nov 27, 2016

... more!
for pygame related questions, comments, and suggestions, please see help (lists, irc)