[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
>>> feel. A start on this, for instance, is being able to give dialog boxes
>>> 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.
More information about the Python-3000