Revision 207 as of 2011-08-08 13:48:32

Clear message

GUI Programming in Python

Python has a huge number of GUI frameworks (or toolkits) available for it, from Tkinter (traditionally bundled with Python, using Tk) to a number of other cross-platform solutions, as well as bindings to platform-specific (also known as "native") technologies.

GUI Programming in Python is a similar page whose content could arguably complement this page with some editing.

Cross-Browser Frameworks

Package

Target

Notes

PyJamas

All major Web Browsers

Comprehensive Widget toolkit, Python-to-Javascript compiler and AJAX library. Provides the "V" in MVC. See also PyjamasDesktop

Cross-Platform Frameworks

The major cross-platform technologies upon which Python frameworks are based include Gtk, Qt, Tk and wxWidgets, although many other technologies provide actively maintained Python bindings.

Package

Target

Notes

AnyGui

many

("Anygui is no longer being actively developed or supported.") single source code runs on many GUI back-ends, including many in this table, plus ncurses

AVC

Linux / many

Fully automatic, live connection among graphical interface widgets and application variables.

Dabo

WxPython

Dabo is a 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit

EasyGui

Tk

EasyGUI is a module for very simple, very easy GUI programming in Python.

FXPy

FOX

Last released 2002; presumed dead.

GnomePython

Gnome

Gnome Platform bindings: bonobo, bonoboui, gconf, gnome, gnomecanvas, gnomevfs, gnomeui

GnomePythonDesktop

Gnome

Gnome Desktop bindings: metacity, nautilus, gnomeprint, gtksourceview, gtop, media-profiles, totem, wnck

GnomePythonExtras

Gnome

Additional Gnome bindings: libegg, gda, gtkmozembed, gtkspell, gksu, gdl, gtkhtml2

GWiz

Tix

GUI engine with integrated GUI builder. Need Alpha testers.

IronPython

.NET/Mono

Python for (originally MS') .NET platform. See http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython for more info.

Jython

Java

Jython is an implementation of the high-level, dynamic, object-oriented language Python seamlessly integrated with the Java platform. see http://www.jython.org/Project/index.html for more info.

Kivy

Windows, MacOSX, Linux, Android

OpenGL ES accelerated framework for creating new user interfaces. Kivy have a native multitouch support for every platform, mouse simulator, widgets multitouch ready, extensions support like berkelium, panda, kinect...

libavg

Windows, MacOS, Linux

Not strictly a GUI toolkit, but a high-level multimedia framework that allows construction of media-rich guis. http://www.libavg.de.

Lucid

Windows, GTK, MacOS

An abstraction layer and clever layout engine that uses the native GUI widgets of each operating system. Previously known as "Claro Framework" - visit http://www.lucidtoolkit.org/

Nufox

XUL (many)

Nufox is a python, XUL toolkit written ontop of the Twisted Networking Framework and Nevow. The idea is that you should be able to write server-side cross platform XUL applications without writing XUL markup, with little javascript, all from the comfort of python, http://nufox.berlios.de/

Ocean

many

GUI library. Python only "pythonic javax.swing". Model/View/Controller, skinning. See http://ocean.sourceforge.net/

OcempGUI

Pygame

A small GUI toolkit written in Python based on Pygame. Provides accessibility support.

PyFltk

FlTk

supports Windows/Unix/Mac - visit http://pyfltk.sourceforge.net

PyGtk

Gtk

Bindings for pango, atk, gtk and libglade

pygir-ctypes

GObject Introspection

Pure Python GObject Introspection Repository (GIR) wrapper using ctypes. Supported CPython >= 2.6, CPython 3.x, PyPy >= 1.4.0, and on all platforms where gobject introspection is supported.

PyGtk2Tk

Tkinter

PyGtk to Tkinter Wrapper runs PyGtk based code unchanged using Tkinter (Tk).

PyGUI

Cocoa / Gtk / Win32

Abstract, pythonic API encapsulating different platforms. Runs on GNU/Linux, MacOSX, & MS Windows.

PyjamasDesktop

Many

Comprehensive Widget toolkit that uses PyWebkitGtk to do the heavy lifting. Provides the "V" in MVC. See also Pyjamas

PyKDE

Qt / KDE

Python wrappers for the KDE libraries

PyMT

OpenGL, all platform

Python framework for doing multitouch GUI / Application (Deprecated, in favor of Kivy)

PyPicoGUI

PicoGUI

python library is included in the main PicoGUI release

PyQt

Qt

Python bindings for the Qt application development framework

PySide

Qt

The PySide project provides LGPL-licensed Python bindings for the Qt cross-platform application and UI framework.

PySWT

SWT

PySWT is a Python Binding to the IBM Eclipse SWT library, to provide Python with a cross platform native looking GUI, see http://www.cs.nyu.edu/zilin/pyswt/pmwiki.php?n=PySWT.Introduction

PythonCard

WxWidgets

Both a framework and GUI builder. Can include wxPython code in PythonCard apps PythonCard tutorial videos at ShowMeDo

PyWebkitGtk

Web Browsers

PyWebkitGtk is a Python Binding to webkit, including DOM model manipulation, Javascript execution, plugin support (e.g. Flash) and (on the TODO list) SVG Canvas support, for extremely powerful and comprehensive applications development. See PyjamasDesktop for an easy-to-use API.

PyUi

OpenGL

Specialized GUI Toolkit for generating GUIs for OpenGL programs.

Sugar

OLPC XO with Linux

User interface for collaborative educational software

TkInter

Tk

Python's "standard" GUI library

TkZinc

Tk extension

TkZinc is a extension of the Tk Canvas, with transparency, gradient, transformations

VTK

many

The Visualization ToolKit (VTK) is an open source, freely available software system for 3D computer graphics, image processing, and visualization. See http://public.kitware.com/VTK/index.php for more info.

Wax

WxWidgets

A wrapper to WxPython, easier and more "pythonic"

WxPython

WxWidgets

supports Windows/Unix/Mac for now - visit http://www.wxwidgets.org, wxPython tutorial videos at ShowMeDo on writing a graphical application

XGui

XGui

XGui is a cross-platform widget set with C,C++ and Python bindings. Actually supports *nix over Gtk and Windows over Win32 - see http://www.objectblues.net/wiki/show/XGui for more info.

Platform-specific Frameworks

Package

Target

Notes

BeThon

BeOS

MacPython

MacOS

Supports both OSX and OS9

PyObjC

MacOSX

Supports Cocoa Aqua GUIs on the Mac

PyMUI

MorphOS

MagicUserInterface wrapper for Python. Support for MorphOS 2.x.

IronPython Studio

Windows

A free GUI implementation of IronPython with the same interface as Visual Studio.

venster

Windows

Venster is a highly native Windows GUI toolkit for Python based on the ctypes ffi library. The aim of Venster is to be a very lightweight wrapper around the standard Win32 API, making it easy to write slick windows applications in pure Python.

Win32All

Windows

Also known by the names of its components: PythonWin (for the UI), Win32Com (for COM/ActiveX), Win32 (for some other parts of the API)

GUI Design Tools and IDEs

IDE

Target

Notes

Autoglade

PyGtk

Automagically creates GUI applications from Glade GUI definition, GPL

BlackAdder

PyQt

Commercial, $50-400

BoaConstructor

WxPython

GPL, Alpha, looks rather dead

Eric3 and Eric4

PyQt

GPL

FarPy GUIE

WxPython

Freeware. Open-Source. Support wxRuby & wxPerl aswell.

Gazpacho

PyGtk

GPL

Glade

PyGtk

GPL

GWiz

Tix

GUI engine with integrated GUI builder. Need Alpha testers.

IronPython Studio

Windows Application

A free GUI implementation of IronPython with the same interface as Visual Studio.

Komodo

TkInter

Commercial

PAGE

Tkinter, Tix

GUI editor for Windows and Linux

PyScripter

Windows

An OpenSource IDE developed using Python and Delphi

PythonCard

PythonCard, WxPython

Python License. Alpha.

PythonToolkit (PTK)

Windows/Linux/Mac

An interactive environment for python, suitable for interactive GUI programming with different GUI toolkits (wxPython, TkInter, pyGTK, pyQT4 and PySide)

PythonWorks

TkInter

PythonWorks is no longer being developed. They still support their existing customers, but licenses are no longer available to new customers.

Qt Designer

PyQt

A form design tool, available with both Commercial and GPL editions of Qt. Can be used with Eric3 and Eric4.

WxDesigner

WxPython

Commercial Student EUR 29, Single user EUR 129

WxFormBuilder

WxPython

GPL cross-platform WYSIWYG GUI builder. Can produce XRC/XML, wxWidgets/C++, or wxPython/python.

WxGlade

WxPython

MIT License, Alpha.

xrope

Python Tkinter

GUI, class browser, file manager, with code completion. Licensed under the GPL.

Visual Python IDE

Tkinter

Visual Python IDE for Python 2.6 to TKINTER

Visual Python

Tkinter

Visual Python

CameronLaird's personal notes on Python GUIs http://phaseit.net/claird/comp.lang.python/python_GUI.html includes over 25 links to toolkits and techniques for connecting python with a GUI.

Other places to look are PythonGuis at Thinki, and http://sensei.co.il/python/ui.html .

Opendocs previously had some material on Qt programming with Python for on-line reading, but ownership of the domain appears to have lapsed. An online version of Boudewijn Rempt's book about PyQt for Qt 3, GUI Programming with Python: QT Edition, is still available. An up-to-date book covering PyQt4, Rapid GUI Programming with Python and Qt by Mark Summerfield, is now available in print and as an online "rough cut". More details can be found on the PyQt Wiki.

http://www.awaretek.com/toolkits.html - Choose Your GUI Toolkit: Find Your GUI Toolkit for Python based on your preferences. Quick cgi application which helps you make a choice. See also Python City.

http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python - Wikipedia article describing several IDE's and GUI Builders.

Editorial Notes

The above lists should be arranged in ascending alphabetical order - please respect this when adding new frameworks or tools.

Currently, this section is rather incomplete. Don't be too disappointed if you can't find the information you need, but please add any information you can contribute. It might be useful to have information about the GUIs and development tools in a fixed format to make them more easily comparable (see WebProgrammingTemplate and WebProgrammingTemplateHelp). Some categories: directly supported widgets, add-on widgets, layout managers, etc. Maybe it could answer the questions in ChoosingGuiToolkits for each toolkit.

Unable to edit the page? See the FrontPage for instructions.