[Python-3000] Requirements for a standard GUI library

Travis E. Oliphant oliphant.travis at ieee.org
Tue May 9 22:58:47 CEST 2006

Terry Reedy wrote:
> "Greg Ewing" <greg.ewing at canterbury.ac.nz> wrote in message 
> news:44596963.8070200 at canterbury.ac.nz...
>> Terry Reedy wrote:
>>> -the ability to ignore platforn standards and give an app a unique look 
>>> and
>>> feel.  A start on this, for instance, is being able to give dialog boxes 
>>> a
>>> custom background instead of uniform gray or whatever.
> I should note first that I have no particular expectation that PyGUI will 
> meet my wish list.

I'm not an expert on any of this, but I like the idea of PyGUI, but I 
would prefer if it were based on lower-level interfaces.

I've liked the concept that enthought's enable toolkit introduced me to 
(and they have made several strides in this direction).   Just get a 
window-area from each platform's lowest-level tool and then draw your 
widgets to the screen directly.  Capture events using the platform's 
lowest-level interface as well.

Then you have a truly cross-platform toolkit written using Python itself 
with speed critical sections in C.  Naturally one could borrow from the 
toolkits already out there to do a lot of it.

I think people interested in this area should really check out 
Enthought's enable toolkit to see if there is anything of value there. 
I like the concept of low-level binding, but I don't know if they've 
actually achieved that.

I'm really not qualified to argue the points, but if there were a 
cross-platform toolkit that was not just a wrapper of a wrapper of a 
wrapper over some underlying toolkit, then that would be the toolkit I 
would choose.   The thing that bothers me most about all of Python's GUI 
toolkits is that they are almost always wrappers of wrappers of wrappers...

I suspect you could start by just interfacing with the 
"platform-default" toolkits MFC, Cocoa, Gnome, and KDE (using ctypes for 
example) and then using an approach similar to PyGUI to wrap them all up 
using standard calls.

I personally like the idea of a cross-platform default toolkit that is 
written with Python not just a wrapper of Tk or wxWindows.

-Travis Oliphant

More information about the Python-3000 mailing list