pygame is
Simple DirectMedia Layer is
Site Swing
Simple Pygame Menu

Simple Pygame Menu - 1.2

Gummbum (gummbum)



A low-fuss, infinitely nested popup menu for pygame. It don't get no simpler den dis.

Inspired by SimpleMenu for pyglet.

I couldn't find one of these for pygame, so I wrote one and decided to make it reusable. Hope you enjoy.


menu_data = (
    'Item 0',
    'Item 1',
        'Item 0',
        'Item 1',
        'Item 2',
            'More Things',
            'Item 0',
            'Item 1',
for e in pygame.event.get():
    if e.type == USEREVENT and e.code == 'MENU':
        print 'menu event: %s.%d: %s' % (,e.item_id,e.text)
        if (,e.text) == ('Main','Quit'):


  • Added class NonBlockingPopupMenu to simplify use.
  • Added exception handlers around "import data" and font initialization. If the cannot be imported, or the preferred font cannot be loaded from file, the default system font is quietly used. This supports less restrictive inclusion in other libraries.
  • Added pos=None parameter to constructors to provide the option of explicit positioning.
  • Added class SubmenuLabel for strong-typing of submenu text in menus. This allows PopupMenu.handle_events() to accurately detect submenus as opposed to the previous trick endswith('...'). It also lifts the restriction implied by depending on endswith('...'), so coders are free to put any text they want in labels without side-effects.
  • Tweaked demos.
  • Links

    Home Page:


    click to view original size


    Simple Pygame Menu - 1.2 - Dec 7, 2010
    Simple Pygame Menu - 1.0 - Dec 4, 2010 account Comments

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

    No user comments have been submitted.

    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)