We're running a tailored 3 day Python course at present, using Python 3 if it's practical, and today we compared the two contenders for the "Top GUI" prize - that's Python with Qt (PyQt) and wxPython. Now wxPython isn't yet available in Python 3, but PyQt is - although some of the documentation refers to the C interface rather then the Python one as yet.

Here's an example of a Qt application that's got a selector box in which you can pull down a menu, then a button you can click on to vote, with the vote being appended to a file. Source code
[here]. It's using Qt4, and it shows the basics. There's no pretence of the code being tidy or well commented, nor the application being robust - it's definitely a "show you the mechanism" example.

And in contrast, here's the same functionality in a wxPython application - selector box, buttons, labels, etc. Source code - once again neither tidy nor robust but rather "shows you how" -
[here].
The look and feel is very different - partly because the GUIs are shown on a Mac and a Windows platform and both of these Python GUIs inherit their style from the native graphics of the host operating system (a good thing, as it makes for consistent windows on each user's computer).
So which do I recommend / which will our customer be using? In their particular case, they need to start doing things and having elementary code up and running very rapidly, and then they'll be revisiting the code year after year in an educational environment. As it's running in Python 3.1, and they want to start and remain with Python 3, their decision is to go with Qt. For others, the decision will be less clear cut.
(written 2010-04-28, updated 2010-05-06)
Associated topics are indexed under
Y203 - GUIs and Graphics in Python [3477] Choosing your Python GUI - wx, Qt, Tk or GTK? - (2011-10-13)
[1036] Python Qt, wX, TkInter, and Jython - training?? - (2007-01-16)
Y206 - Python and the Qt GUI [2746] Model - View - Controller demo, Sqlite - Python 3 - Qt4 - (2010-04-29)
Y207 - wxPython [3139] Steering our Python courses towards wxPython, SQLite and Django - (2011-01-19)
[3092] wxPython geometry - BoxSizer example - (2010-12-17)
[3086] Sizers (geometry control) in a wxPython GUI - a first example - (2010-12-15)
[3081] wxPython - simple example to add GUI to a server log file analysis - (2010-12-08)
[2887] Snow Leopard and Python (that is OS X 10.6 and wxPython) - (2010-07-26)
[2013] wxPython - Introduction and sample - (2009-01-29)
[903] Pieces of Python - (2006-10-23)
S200 - MySQL - SQLite [3269] Files or Databases? MySQL, SQLite, or Oracle? - (2011-04-28)
[3099] Perl - database access - DBD, DBI and DBIx modules - (2010-12-22)
[2786] Factory methods and SqLite in use in a Python teaching example - (2010-05-29)
[2745] Connecting Python to sqlite and MySQL databases - (2010-04-28)
[2561] The future of MySQL - (2010-01-03)
Some other Articles
Monitoring the success and traffic of your web siteContainment, Associative Objects, Inheritance, packages and modulesPyQt (Python and Qt) and wxPython - GUI comparisonPublic Open Source Training Courses running this summer and autumn in MelkshamA simple server benchmark scriptWhat is a factory?Melksham Hustings at George Ward SchoolMelksham Scouts