Choose Your GUI Toolkit

Find Your GUI Toolkit for Python
based on your preferences

PyGUI, Tkinter, Easygui, wxPython, PythonCard, pyQt, pyGtk, Jython (Swing & AWT), Anygui, FXPy, pyFLTK; which one is for you?

For each criterion below, input an integer from 1 to 100, as a weight or relative importance factor. "1" means that the criterion is not very important to you, "100" means extremely important to you. "50" is somewhere right in the middle. All of these fine GUI toolkits are good, so you can't go wrong; but by ranking the importance of each criterion to you, this program will help you find the appropriateness of each toolkit for your current purposes.

Ease of use, ease of learning

Maturity, documentation, breadth of widget selection

Popularity, installed base

Availability of GUI-painters, code generators

Windows, ease of installation, native look and feel

Linux, ease of installation, native look and feel

Mac OS X, ease of installation, native look and feel

PDA's, suitability for use on

Click to score the toolkits' suitability to you!

Scores: Higher is better. Do not write in here.

Reset to zeroes and try again?

All of these toolkits are good. Tune back in as we explore them further. Meanwhile, here is a brief summary of some of the many options available: This is a non-exhaustive list and new options are sprouting up all the time. Isn't it great to have choices!

PyGUI: a GUI API that is designed specifically for Python, taking advantage of Python's unique language features and working smoothly with Python's data types.  

Tkinter: This default gui toolkit is installed when you install Python. It is mature, robust, and popular. You can be pretty sure that any user who has loaded Python can run any scripts you do using Tkinter. A very worthy toolkit; the standard bearer.

Easygui: Easygui is the easiest gui-creator known to man. It is based on the Tkinter toolkit and it uses the simplest, most intuitive syntax imaginable. Newbies should definitely try this out in order to get a sense of accomplishment. It is, however, mainly for use in obtaining data input from users and sending simple dialogs and other communication to the user. More complex requirements will require a more powerful toolset, but Easygui is still good for some useful and interesting tasks!

wxPython: wxPython is the "up and comer", the current challenger to Tkinter's throne. wxPython is a heavy-weight contender, with a great range of widgets that some find superior to Tkinter's. In addition, wxPython widgets have a more native look and feel on Windows than does Tkinter's widgets, since wxPython is built on top of wxWindows. On balance, wxPython is an excellent choice if you are using Windows. The tookit also works on Linux and Mac OS X, but is perhaps a bit more challenging to install than Tkinter.

PythonCard: My sentimental favorite, PythonCard is relatively new, but it is developing very quickly. PythonCard uses a "framework" model, based on wxPython, and seperates logic from presentation by using a "resource editor" file. PythonCard is very easy to learn and use, and it may be the ultimate gui-creator for Python someday. In the meantime, it is gaining in popularity and installation is easy and automatic on Windows. Installation on Linux and Mac OS X can be tricky for newbies, as you must install wxPython before you can install PythonCard.

Boa Constructor: A Gui Painter or Code Generator built on the wxPython toolkit, Boa Constructor development is still in Beta, but it ultimately offers the same kind of RAD, visual development tool as Visual Basic and Delphi, except it is also open source, free, and uses Python!

Wax: Wax is a GUI framework implemented as a layer on top of wxPython. Wax is a creation of Hans Nowak, noted Python hacker, and is intended to be simpler and easier to use than wxPython while maintaining wxPython's full power.

BlackAdder: A commercial GUI-Painter and IDE from theKompany, built on the Qt toolkit.. I have tried the hobbyist or home version, and it is really slick and inexpensive;, but you must have a good understanding of the underlying Qt toolkit to do any real work..

Anygui: is a unique project in that it allows you to create gui's by writing simple, python-type code that then automatically senses and uses whichever gui toolkit the user has installed on his machine, giving obvious advantages in universality. The syntax seems intuitive to me and easygui is being developed by an all-star caste of Famous Python Developers!

pyGtk: Based on the Gtk toolkit that underlies the Gnome environment for Linux and the GIMP, pyGtk is very powerful. There is a free gui painter available called pyGlade. pyGtk is great for use on Linux but is also good for Windows. pyGtk is powerful, professional grade stuff, but is not particularly easy.

Glade: a User Interface Builder for GTK+ and GNOME

Gazpacho:Next Generation GUI Design for GTK+ and GNOME

Jython: By using Jython, one gets easy access to the Java GUi libraries, SWING and AWT. In fact, using SWING or AWT is much easier using Jython than when using Java itself, because of the legendary ease of use of the Python syntax; however, you may have more difficulty porting your gui form the original environment in which you code it,m to another computer operating system than if you use Java. Still, it is portable, and relatively easy. I like playing around with Jython and SWIng, which is better than AWT. AWT however, has one advantage; it works on the Sharp Zaurus Linux based PDA, while SWING does not. Jython and SWING is a good choice of ruse on the Mac OS X., Linux, and also Windows.

HTML: Not a Python gui toolkit, but if you want to rub your Python code form a web browser using CGI, then creating a simple User Interface using HTML is the way to go.

FXPy: Uses the OpenGL toolkit and runs on just about any Unix and also on Windows.

pyFLTK: The Fast Light Toolkit is relatively easy for simple, lightweight guis. It runs on the openGL toolkit.

PythonWorks: A commercial gui-Painter and IDE, unfortunately discontinued byPythonWare. It was a first class product using the Tkinter toolkit. Unfortunately discontinued but see PythonWare's other fine products

TwiLight GUI
A GUI wrapper for wxPython, Tkinter, PyQT and PyGTK

Venster, a GUI Toolkit for Windows

Still more GUI toolkit options and information from the Python Wiki

Other GUI options:

vPython is a really neat, easy to use toolkit for creating moving 3d graphics with Python. Highly recommended and fun to play around with!!!

PicoGui is a compact module for creating gui's on embedded systems and such small footprint devices. It runs on Linux and various PDA's, including the Sharp Zaurus.

Back to Python City