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 | |
Antoine Pitrou | c1bd489 | 2011-12-04 23:56:30 +0100 | [diff] [blame] | 6 | Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are |
| 7 | available for Python: |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 8 | |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 9 | .. seealso:: |
| 10 | |
Antoine Pitrou | 7462e87 | 2011-12-03 20:59:24 +0100 | [diff] [blame] | 11 | `PyGObject <https://live.gnome.org/PyGObject>`_ |
| 12 | provides introspection bindings for C libraries using |
Georg Brandl | 525d355 | 2014-10-29 10:26:56 +0100 | [diff] [blame] | 13 | `GObject <https://developer.gnome.org/gobject/stable/>`_. One of |
Antoine Pitrou | 7462e87 | 2011-12-03 20:59:24 +0100 | [diff] [blame] | 14 | these libraries is the `GTK+ 3 <http://www.gtk.org/>`_ widget set. |
| 15 | GTK+ comes with many more widgets than Tkinter provides. An online |
| 16 | `Python GTK+ 3 Tutorial <http://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_ |
| 17 | is available. |
| 18 | |
| 19 | `PyGTK <http://www.pygtk.org/>`_ provides bindings for an older version |
| 20 | of the library, GTK+ 2. It provides an object oriented interface that |
| 21 | is slightly higher level than the C one. There are also bindings to |
Georg Brandl | 810f1d5 | 2013-10-13 22:23:27 +0200 | [diff] [blame] | 22 | `GNOME <http://www.gnome.org>`_. An online `tutorial |
Christian Heimes | dd15f6c | 2008-03-16 00:07:10 +0000 | [diff] [blame] | 23 | <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available. |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 24 | |
Georg Brandl | b7354a6 | 2014-10-29 10:57:37 +0100 | [diff] [blame] | 25 | `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_ |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 26 | PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an |
| 27 | extensive C++ GUI application development framework that is |
| 28 | available for Unix, Windows and Mac OS X. :program:`sip` is a tool |
| 29 | for generating bindings for C++ libraries as Python classes, and |
| 30 | is specifically designed for Python. The *PyQt3* bindings have a |
| 31 | book, `GUI Programming with Python: QT Edition |
| 32 | <http://www.commandprompt.com/community/pyqt/>`_ by Boudewijn |
| 33 | Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming |
| 34 | with Python and Qt <http://www.qtrac.eu/pyqtbook.html>`_, by Mark |
| 35 | Summerfield. |
| 36 | |
Georg Brandl | b7354a6 | 2014-10-29 10:57:37 +0100 | [diff] [blame] | 37 | `PySide <http://qt-project.org/wiki/PySide>`_ |
Antoine Pitrou | 5dd95d6 | 2011-12-03 21:07:01 +0100 | [diff] [blame] | 38 | is a newer binding to the Qt toolkit, provided by Nokia. |
| 39 | Compared to PyQt, its licensing scheme is friendlier to non-open source |
| 40 | applications. |
| 41 | |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 42 | `wxPython <http://www.wxpython.org>`_ |
| 43 | wxPython is a cross-platform GUI toolkit for Python that is built around |
| 44 | the popular `wxWidgets <http://www.wxwidgets.org/>`_ (formerly wxWindows) |
Christian Heimes | 2c18161 | 2007-12-17 20:04:13 +0000 | [diff] [blame] | 45 | C++ toolkit. It provides a native look and feel for applications on |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 46 | 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] | 47 | widgets where ever possible, (GTK+ on Unix-like systems). In addition to |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 48 | an extensive set of widgets, wxPython provides classes for online |
| 49 | documentation and context sensitive help, printing, HTML viewing, |
| 50 | low-level device context drawing, drag and drop, system clipboard access, |
| 51 | an XML-based resource format and more, including an ever growing library |
Christian Heimes | 2c18161 | 2007-12-17 20:04:13 +0000 | [diff] [blame] | 52 | of user-contributed modules. wxPython has a book, `wxPython in Action |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 53 | <http://www.amazon.com/exec/obidos/ASIN/1932394621>`_, by Noel Rappin and |
| 54 | Robin Dunn. |
| 55 | |
Alexandre Vassalotti | 8ae3e05 | 2008-05-16 00:41:41 +0000 | [diff] [blame] | 56 | 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] | 57 | widgets than Tkinter. In addition, there are many other GUI toolkits for |
Alexandre Vassalotti | 8ae3e05 | 2008-05-16 00:41:41 +0000 | [diff] [blame] | 58 | Python, both cross-platform, and platform-specific. See the `GUI Programming |
Georg Brandl | e73778c | 2014-10-29 08:36:35 +0100 | [diff] [blame] | 59 | <https://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 60 | much more complete list, and also for links to documents where the |
| 61 | different GUI toolkits are compared. |
| 62 | |