This is a project to develop a cross-platform pythonic GUI
API. The goals of this project are:
- Develop a GUI API that is
designed specifically for Python, taking advantage of Python's unique
language features and
working smoothly with Python's data types.
- Provide implementations of the API for the three
major platforms (Unix, Macintosh and Windows) that are small and
lightweight, interposing as little code as possible between the Python
application and the platform's underlying GUI facilities, and not
bloating the Python installations or applications which use them.
- Document the API purely in Python terms, so that
the programmer does not need to read the documentation for another
GUI library, in terms of another language, and translate into
- Get the library and its documentation included in
the core Python distribution, so that truly cross-platform
GUI applications may be written that will run on any Python
Latest Version - 2.5.4
Now works with Python 3 on MacOSX and Windows!
3 support for Gtk will have to wait until Gtk 3 and related libraries
are stable and up to speed with GObject Introspection.)
The ScrollableView class has been completely reimplemented on Windows and should now work properly with all builds of PyWin32.
Includes tutorial material, example code and API reference
This version includes three implementations:
Last updated 25 Mar 2017
- requires PyObjC
(tested with PyObjC-1.2 on Tiger, PyObjC-2.3 on Snow Leopard)
- requires pygtk
(tested with pygtk-2.14.0 and Gtk+-2.14.7)
- requires pywin32
(tested with pywin32-213) and ctypes
(included with Python 2.5 and later)
Python versions required:
To use the OpenGL facilities, you will need PyOpenGL,
and, for the Gtk version, GtkGLExt
- Python 2: 2.3 or later
- Python 3: 3.1 or later
Example application: blobedit.py
You may also find the contents of the Tests folder in the
distribution useful as a source of example code.
DiscussionPyGUI Mailing List -- for all discussion relating to the development and use of PyGUI.
mailing lists may also be appropriate for platform-specific issues.
parts of the Windows implementation are based on contributions by
Patrick Forget and Erez-Sh. Even though I didn't use much of their code
in the end, I appreciate their efforts and may draw more from it in the