Hi everyone, Now that I have become an intermediate python
> programmer, I want to learn how to build some GUIs. I am
> trying to decide between WX and GTK, and was hoping to get
> input from this list specifically.
There is some information here -
http://matplotlib.sourceforge.net/faq.html#WHICHBACKEND
Here's my 2c
Use a *Agg backend, either TkAgg, WXAgg or GTKAgg. This way you'll
always be assured of having the most complete feature set. All
produce identical figures since they use Agg.
Of those three, there are tradeoffs.
GTK
A great choice if your deploying on linux and win32 only. A word of
caution thought: win32 support is becoming more problematic now that
dropline gtk runtime installers are no longer supported. OS X is
more difficult unless your users use fink. Steve Chaplin maintains
the GTK backend and is very active keeping the code consistent with
different pygtk releases etc. The application I develop with
matplotlib uses GTKAgg, so yes, developer support is good. I
primarily develop this application on linux and deploy on win32 (all
my users only know windows) and it has been quite successful and
non-problematic. GTKAgg is also currently the fastest backend for
dynamic (animated) images.
Tk
A good choice if you want the greatest likelihood of it working
across all platforms with minimal extra dependencies. Excellent
support from Todd Miller and stsci. The only two downsides, in my
opinion, are 1) that the widgets aren't so nice and 2) TkAgg is a
bit slow (1.5-3x slower than GTKAgg) for dynamic images because the
transfer from agg to the tk canvas is slow - this is mostly out of
our control.
WX
As you noted a very popular platform, native widgets, etc. Can be a
tough install on OS X and linux, but works great for win32 (eg
enthought edition). Support is a problem with no active maintainer,
though I do what I can. If you use WXAgg, support is less of a
problem since the widget interface is fairly stable. If you need
dynamic images, this will currently be slower than GTKAgg since I
use string methods to transfer the agg image buffer to the wx
canvas, but at some point I would like to write some wx extension
code for this purpose. A number of people with good knowledge of
matplotlib internals use wx for application development and I think
are fairly satisfied.
FLTK
Gregory Lielens has developed a FLTK backend, though it is not yet
in CVS. Early reports are that it is quite fast, as we would hope,
from the name.
JDH