★ wanayoo — archive 1999 http://starbase.neosoft.com/~claird/comp.lang.python/python_GUI.htmlNouvelle recherche | Portail wanayoo

Cameron Laird's personal notes on Python GUIs

Table of Contents

Introduction

The van Rossums maintain a page of contributed graphical python software, including brief commentary. My remarks here only supplement their work, and do not replace it. If you know of information that should be here, and is missing, please let me know; I'll quickly add it. [Finish adding few dozen other links.] [especially explain uiToolkit.]

Mikael Lyngvig accurately summarizes comp.lang.python discussion of the technical merits of Tkinter, wxPython, and Python-bound JPI.

fltk

"Fltk ("Fast Light Tool Kit") is a fairly new portable GUI toolkit library for UNIX/X11 and Win32, with OpenGL support, largely compatible with the XForms library, ..." and distributed under GNU Library GPL. This is Markus Fleck's characterization, in which he adds that, "While written in C++, Fltk does not use macros, templates, multiple inheritance, or exceptions, and should thus be quite easily SWIGable." XForms itself apparently has a non-commercial-use-only license.

Kevin Dalhausen and Bjorn Petterson, among others, are working on bindings for Python and Perl. They conduct their work through a mailing list.

FOX

FOX is yet another GUI that looks to be of interest to Pythonians. FXPy is a good Python extension, with relatively complete documentation.

JPython

JPython gives convenient access to AWT and JFC.

JPI

JPI allows Python--CPython, that is--to script Java. It's immature, as of summer 1999.

MFC

[Explain Mark Hammond's expertise.]

PyGTK

PyGTK binds to the GTK+ toolkit and GNOME libraries. While it originally aimed only to be the toolkit for the GIMP, Gtk is now popular for many, many open-source projects.

Prominent in the minds of many working with Qt and GTK are the different licenses under which they operate. I choose not to describe those controversies; I do recommend, though, that users study them enough to understand their consequences. (Is it not thread-safe?)

In mid-1999, Gtk has more widgets than Tk, and generally feels more responsive. Tk generally remains more succinct.

pyKDE

pyKDE is now at 0.9pre2. Phil Thompson currently packages it in two pieces, one for KDE, and one for Qt. My thanks to Boudewijn Rempt for updating me on its status, and referring me to the tutorial he wrote.

PyKDE advocates generally claim it's zippy, easy, and powerful. On the other hand, pyKDE is (much?) less portable than Qt itself. As Mr. Rempt has written me, "the problem is that nobody has ever wanted to spend money on the Qt toolkit for Windows to try it out!"

PythonQt

PythonQt purports to bind to Qt. I haven't used it. Apparently there's been no work on it in quite a while; it's moribund, at best. However, pyKDE-0.6 includes bindings for 1.1 of KDE and 1.42 of Qt, with the promise that, "[i]n a future version separate bindings for each of these will be produced." [Fill in more hyperlinks.]

Tkinter

[Explain]

VTK

As David Gobbi explains it, VTK is impressive:
Unfortunately, VTK's python wrappers aren't available under Windows (or at least, aren't complete yet). Under UNIX, though, there are tons of impressive VTK examples that use python. We use VTK under linux, IRIX, and NT (the last two with hardware OpenGL acceleration).
Since then, as he told me in a private communication,
VTK/python interface was ported to Windows ... and integrated into the main VTK codebase [early in 1999]. The most recent VTK release (2.4) for Windows comes with the python interface pre-built.

I'm working with the VTK folks to make the python interface rock-solid for VTK3.0, which should be released sometime in the fall [of 1999]. This includes Tkinter widgets for 2D and 3D rendering, plus the ability to pass data (images, vertex arrays, etc) between VTK and python.

Among VTK's attractions: the Prentice-Hall manual, and good bindings also for C++, Java, and Tcl/Tk.

wxPython

wxPython, based on wxWindows 2.0, is now sufficiently mature to inspire wild enthusiasm in at least some users. Moreover, as Vadim Zeitlin writes, "unlike probably any other GUI toolkit, wxWindows developers are interested in making their toolkit useful to the Python community." The wxWindows development team certainly seems active, with progress in 1999 on many fronts (including MacOS, multimedia classes, GL, ...). Still, Robin Dunn's conclusion is that, "I also don't think that wxPython is ready yet to be included with the Python distribution."

Acknowledgement

My thanks to Fredrik Lundh for his help understanding Python's GUIs.

We wrote at more length on related subjects in an article for SunWorld Online.


Cameron Laird's personal notes on Python GUIs/claird@NeoSoft.com