From: John H. <jdh...@ac...> - 2004-07-20 14:27:55
|
>>>>> "Darren" == Darren Dale <dd...@co...> writes: Darren> Hi everyone, Now that I have become an intermediate python Darren> programmer, I want to learn how to build some GUIs. I am Darren> trying to decide between WX and GTK, and was hoping to get Darren> 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 |