an extensive open-source Python framework
for data sonification research and auditory display

HOME   INTRO cli ide gui  



Grahic User Interface (GUI) Tools
The command line is for simple text output: see the CLI menu. An Interactive Development Environment provides an adequate tools for development and debugging: see the IDE menu. However, there are occasions when a GIU affords better operation of a data sonification and these tools are for those.

Event driven GUI vs Interpreter+CLI
One of SoniPy's requirements is that one must be able to access the python interpreter and all that that entails (developing other modules, data/project specific tools etc) at the same time as accessing GUIs for more mundane or oft-undertaken tasks. This is essential for incremental development: to lock everything off behind an event-driven GUI (as a single program) will inhibit communal development.

Look and Feel: consistency across platforms or platform consistency
There are two approaches to developing cross-platform GUI tools. One is to try to make the look-and-feel the same independent of the platform, and the other is to use tools which defer to hardware-specific routines. The main tools for the former are TCL/TK and OpenGL, and the latter includes FLTK, GTK+ and wxPython. After testing, we decided to follow the second approach, mainly because the visual results were cleaner, more stable and faster.

Please note that these tools are for interface development. If you want to gnerate graphical output such as charts, plots and animations, see the IMAGE DISPLAY menu.

Name   wxPython
Description   A blending of the wxWidgets C++ class library with the Python programming language.
Principal Reference
Documentation   The above URL is very comprehensive. Rappin and Robin Dunn's book wxPython in Action is very readable and offers guidelines about GUI development in an event-driven environment.
Version   For Mac OSX 10.4: Version
Later versions should not present incompatibilities.
Download   sourceforge OSX 10.4 binary download
wxPython binary download
Dependencies   wxPython needs a special Mac OS X-specific build of Python. See MacOSX heading on the prerequisites page.
Examples   wxPython is used extensively. PythonCard (see below) has quite a few demonstrations.
Warnings   There are a few application development environments which bundle wxPython and other python tools. Examples are Jython Boa-Constructor, SPE and PyGame. We don't recommend this approach.

Making the look-and-feel of a GUI satisfactory can be very time-consuming.

Initial Comments   wxPython is a cross-platform toolkit. This means that the same program will run on multiple platforms without modification. Currently supported platforms are 32-bit Microsoft Windows, most Unix or unix-like systems, and Macintosh OS X.

PyCrust is an interactive Python shell written in Python using wxPython. It was a separate application but is now part of wxPython.

Design tools using wxPython

One of the most difficult things about GUI systems is the sheer volume of interrelated heirarchical information that needs to be absorbed before one can do anything. wxPython abstracts some of the lower-level issues to good effect. wxGlade and PythonCard take this one step further, taking much of the pain out of the GUI design process.

Name   wxGlade
Description   A GUI designer written in Python that helps you create wxWidgets/wxPython user interfaces. At the moment it can generate Python, C++ and XRC (wxWidgets' XML resources) code.
Principal Reference   the sourceforge site
Documentation   the manual on sourceforge
Version   Is platform independent. Get the latest (perhaps but one).
Download   (CVS best at this stage)
Dependencies   wxPython
Examples   tutorial
Warnings   The development group is quite new, but seems stable and open to beginner's questions.
Initial Comments   wxGlade allows you to develop a GUI iteratively, including generating the Python code. A feature of wxGlade is that it separates the GUI code from the task handling, so you can reload your developing code into wxGlade and adjust the GUI without interferring with the task handlers.


Name   PythonCard
Description   PythonCard is a GUI construction kit using wxPython for building cross-platform desktop applications on Windows, Mac OS X, and Linux. Apple's HyperCard is one of their inspirations; simple, yet powerful.
Principal Reference   sourceforge site
Documentation   sourceforge site documentation. Contains a lot of useful material.
Version   Is platform independent. Get the latest (0.8.2 at time of writing).
Download   the sourceforge site
Dependencies   wxPython
Examples   PythonCard provides some real examples which can just be loaded and run. Most of them are pretty basic but offer a good learn-by-fiddling-around approach. The PythonCard website has a link to screenshots of some of these simple applications built using it.
Warnings   None. Hasn't been tested as thoroughly as wxGlade.
Initial Comments   A good learning tool. The basic approach seems to encourage a "find and example close to what you're needing and adapt it to your specific needs." Whilst initially attractive, this can lead to problems integrating with other tasks. I found it useful to do an initial mock up in PythonCard and transfer the results to wxGlade.
HELP : components

user interfaces
Copyright © 2007-2009 David Worrall                                                                                          Last updated: 20090327