blob: b36568d83526eda41b2d26284a9f0a218e048f16 [file] [log] [blame]
Georg Brandl8ec7f652007-08-15 14:28:01 +00001.. _other-gui-packages:
2
3Other Graphical User Interface Packages
4=======================================
5
6There are an number of extension widget sets to :mod:`Tkinter`.
7
Georg Brandl8ec7f652007-08-15 14:28:01 +00008.. seealso::
9
10 `Python megawidgets <http://pmw.sourceforge.net/>`_
11 is a toolkit for building high-level compound widgets in Python using the
12 :mod:`Tkinter` module. It consists of a set of base classes and a library of
13 flexible and extensible megawidgets built on this foundation. These megawidgets
14 include notebooks, comboboxes, selection widgets, paned widgets, scrolled
15 widgets, dialog windows, etc. Also, with the Pmw.Blt interface to BLT, the
16 busy, graph, stripchart, tabset and vector commands are be available.
17
18 The initial ideas for Pmw were taken from the Tk ``itcl`` extensions ``[incr
19 Tk]`` by Michael McLennan and ``[incr Widgets]`` by Mark Ulferts. Several of the
20 megawidgets are direct translations from the itcl to Python. It offers most of
21 the range of widgets that ``[incr Widgets]`` does, and is almost as complete as
22 Tix, lacking however Tix's fast :class:`HList` widget for drawing trees.
23
24 `Tkinter3000 Widget Construction Kit (WCK) <http://tkinter.effbot.org/>`_
25 is a library that allows you to write new Tkinter widgets in pure Python. The
26 WCK framework gives you full control over widget creation, configuration, screen
27 appearance, and event handling. WCK widgets can be very fast and light-weight,
28 since they can operate directly on Python data structures, without having to
29 transfer data through the Tk/Tcl layer.
30
Georg Brandl8ec7f652007-08-15 14:28:01 +000031
32The major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits that are
33also available for Python:
34
Georg Brandl8ec7f652007-08-15 14:28:01 +000035.. seealso::
36
37 `PyGTK <http://www.pygtk.org/>`_
38 is a set of bindings for the `GTK <http://www.gtk.org/>`_ widget set. It
39 provides an object oriented interface that is slightly higher level than the C
40 one. It comes with many more widgets than Tkinter provides, and
41 has good Python-specific reference documentation. There are also `bindings
42 <http://www.daa.com.au/~james/gnome/>`_ to `GNOME <http://www.gnome.org>`_.
43 One well known PyGTK application is
44 `PythonCAD <http://www.pythoncad.org/>`_. An
45 online `tutorial <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is
46 available.
47
Georg Brandl2b92f6b2007-12-06 01:52:24 +000048 `PyQt <http://www.riverbankcomputing.co.uk/pyqt/index.php>`_
Georg Brandl8ec7f652007-08-15 14:28:01 +000049 PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an
50 extensive C++ GUI application development framework that is
51 available for Unix, Windows and Mac OS X. :program:`sip` is a tool
52 for generating bindings for C++ libraries as Python classes, and
53 is specifically designed for Python. The *PyQt3* bindings have a
54 book, `GUI Programming with Python: QT Edition
55 <http://www.commandprompt.com/community/pyqt/>`_ by Boudewijn
56 Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming
57 with Python and Qt <http://www.qtrac.eu/pyqtbook.html>`_, by Mark
58 Summerfield.
59
60 `wxPython <http://www.wxpython.org>`_
61 wxPython is a cross-platform GUI toolkit for Python that is built around
62 the popular `wxWidgets <http://www.wxwidgets.org/>`_ (formerly wxWindows)
Georg Brandl1bd51e32007-12-16 16:00:36 +000063 C++ toolkit. It provides a native look and feel for applications on
Georg Brandl8ec7f652007-08-15 14:28:01 +000064 Windows, Mac OS X, and Unix systems by using each platform's native
Georg Brandl1bd51e32007-12-16 16:00:36 +000065 widgets where ever possible, (GTK+ on Unix-like systems). In addition to
Georg Brandl8ec7f652007-08-15 14:28:01 +000066 an extensive set of widgets, wxPython provides classes for online
67 documentation and context sensitive help, printing, HTML viewing,
68 low-level device context drawing, drag and drop, system clipboard access,
69 an XML-based resource format and more, including an ever growing library
Georg Brandl1bd51e32007-12-16 16:00:36 +000070 of user-contributed modules. wxPython has a book, `wxPython in Action
Georg Brandl8ec7f652007-08-15 14:28:01 +000071 <http://www.amazon.com/exec/obidos/ASIN/1932394621>`_, by Noel Rappin and
72 Robin Dunn.
73
74PyGTK, PyQt, and wxPython, all have a modern look and feel and far more
75widgets and better documentation than Tkinter. In addition,
76there are many other GUI toolkits for Python, both cross-platform, and
77platform-specific. See the `GUI Programming
78<http://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a
79much more complete list, and also for links to documents where the
80different GUI toolkits are compared.
81