[Python-3000] PyGUI in Py3K stdlib, more details

Bill Janssen janssen at parc.com
Mon May 1 17:44:48 CEST 2006


> So you're really aiming at incorporating a gui-api for Python, so that it can 
> be pointed at the backend of choice? Something similar to what the DB-api 
> achieves for databases?

Yes, that's essentially what PyGUI already is.  It doesn't attempt to
model directly any specific existing toolkit, but rather to define an
abstraction which can be realized with most existing toolkits.

See the home page at http://www.cosc.canterbury.ac.nz/~greg/python_gui/, and

http://www.cosc.canterbury.ac.nz/~greg/python_gui/version/Doc/index.html has

a description of the abstract API.

What I think we should do for Py3K is a bit more extensive.  I think
we should try to make sure than any Python distribution includes PyGUI
plus one or more bindings appropriate for that distribution.  For
example, a Linux RPM might include the bindings for GTK+ and wxWidgets
(presuming it's ported to wxWidgets), the Jython distribution would
include the bindings for Swing, the Mac OS X distribution would
include the bindings for Cocoa, etc.  The source distribution would
include the binding code for all the bindings, but of course autoconf
would figure out which of those to build.

Let's get "batteries included" working on the GUI front.

> That certainly seems like a laudable goal. Advanced usage might still need to 
> dig into the underlying GUI framework directly, but a common front-end could 
> cover the needs of basic apps.

That's the general idea.  Things like PyGTK and wxPython will always
exist, and some people may need them, but the PyGUI basic framework
should suffice for most uses.  I think, with a good graphics subsystem
(the Canvas widget), you can really do quite a bit.

Bill
------------------------------------------
 Bill Janssen  <janssen at parc.com>     (650) 812-4763    FAX: (650) 812-4258
 PARC -- User Interface Research Area          http://www.parc.com/janssen/


More information about the Python-3000 mailing list