| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 1 | .. _other-gui-packages: | 
 | 2 |  | 
 | 3 | Other Graphical User Interface Packages | 
 | 4 | ======================================= | 
 | 5 |  | 
| Georg Brandl | ac6060c | 2008-05-17 18:44:45 +0000 | [diff] [blame] | 6 | There are an number of extension widget sets to :mod:`tkinter`. | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 7 |  | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 8 | .. seealso:: | 
 | 9 |  | 
 | 10 |    `Python megawidgets <http://pmw.sourceforge.net/>`_ | 
 | 11 |       is a toolkit for building high-level compound widgets in Python using the | 
| Georg Brandl | ac6060c | 2008-05-17 18:44:45 +0000 | [diff] [blame] | 12 |       :mod:`tkinter` package.  It consists of a set of base classes and a library of | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 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 Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 31 |  | 
 | 32 | The major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits that are | 
 | 33 | also available for Python: | 
 | 34 |  | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 35 | .. seealso:: | 
 | 36 |  | 
 | 37 |    `PyGTK <http://www.pygtk.org/>`_ | 
 | 38 |       is a set of bindings for the `GTK <http://www.gtk.org/>`_ widget set. It | 
| Christian Heimes | dd15f6c | 2008-03-16 00:07:10 +0000 | [diff] [blame] | 39 |       provides an object oriented interface that is slightly higher level than | 
 | 40 |       the C one. It comes with many more widgets than Tkinter provides, and has | 
 | 41 |       good Python-specific reference documentation. There are also bindings to | 
 | 42 |       `GNOME <http://www.gnome.org>`_.  One well known PyGTK application is | 
 | 43 |       `PythonCAD <http://www.pythoncad.org/>`_. An online `tutorial | 
 | 44 |       <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available. | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 45 |  | 
| Georg Brandl | 495f7b5 | 2009-10-27 15:28:25 +0000 | [diff] [blame] | 46 |    `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/>`_ | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 47 |       PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit.  Qt is an | 
 | 48 |       extensive C++ GUI application development framework that is | 
 | 49 |       available for Unix, Windows and Mac OS X. :program:`sip` is a tool | 
 | 50 |       for generating bindings for C++ libraries as Python classes, and | 
 | 51 |       is specifically designed for Python. The *PyQt3* bindings have a | 
 | 52 |       book, `GUI Programming with Python: QT Edition | 
 | 53 |       <http://www.commandprompt.com/community/pyqt/>`_ by Boudewijn | 
 | 54 |       Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming | 
 | 55 |       with Python and Qt <http://www.qtrac.eu/pyqtbook.html>`_, by Mark | 
 | 56 |       Summerfield. | 
 | 57 |  | 
 | 58 |    `wxPython <http://www.wxpython.org>`_ | 
 | 59 |       wxPython is a cross-platform GUI toolkit for Python that is built around | 
 | 60 |       the popular `wxWidgets <http://www.wxwidgets.org/>`_ (formerly wxWindows) | 
| Christian Heimes | 2c18161 | 2007-12-17 20:04:13 +0000 | [diff] [blame] | 61 |       C++ toolkit.  It provides a native look and feel for applications on | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 62 |       Windows, Mac OS X, and Unix systems by using each platform's native | 
| Christian Heimes | 2c18161 | 2007-12-17 20:04:13 +0000 | [diff] [blame] | 63 |       widgets where ever possible, (GTK+ on Unix-like systems).  In addition to | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 64 |       an extensive set of widgets, wxPython provides classes for online | 
 | 65 |       documentation and context sensitive help, printing, HTML viewing, | 
 | 66 |       low-level device context drawing, drag and drop, system clipboard access, | 
 | 67 |       an XML-based resource format and more, including an ever growing library | 
| Christian Heimes | 2c18161 | 2007-12-17 20:04:13 +0000 | [diff] [blame] | 68 |       of user-contributed modules.  wxPython has a book, `wxPython in Action | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 69 |       <http://www.amazon.com/exec/obidos/ASIN/1932394621>`_, by Noel Rappin and | 
 | 70 |       Robin Dunn. | 
 | 71 |  | 
| Alexandre Vassalotti | 8ae3e05 | 2008-05-16 00:41:41 +0000 | [diff] [blame] | 72 | PyGTK, PyQt, and wxPython, all have a modern look and feel and more | 
| Georg Brandl | 48310cd | 2009-01-03 21:18:54 +0000 | [diff] [blame] | 73 | widgets than Tkinter. In addition, there are many other GUI toolkits for | 
| Alexandre Vassalotti | 8ae3e05 | 2008-05-16 00:41:41 +0000 | [diff] [blame] | 74 | Python, both cross-platform, and platform-specific. See the `GUI Programming | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 75 | <http://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a | 
 | 76 | much more complete list, and also for links to documents where the | 
 | 77 | different GUI toolkits are compared. | 
 | 78 |  |