blob: 43721b26884a01c3bee3086555970ade2e44bee0 [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001.. _other-gui-packages:
2
3Other Graphical User Interface Packages
4=======================================
5
Antoine Pitrouc1bd4892011-12-04 23:56:30 +01006Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are
7available for Python:
Georg Brandl116aa622007-08-15 14:28:22 +00008
Georg Brandl116aa622007-08-15 14:28:22 +00009.. seealso::
10
Antoine Pitrou7462e872011-12-03 20:59:24 +010011 `PyGObject <https://live.gnome.org/PyGObject>`_
12 provides introspection bindings for C libraries using
Georg Brandl525d3552014-10-29 10:26:56 +010013 `GObject <https://developer.gnome.org/gobject/stable/>`_. One of
Antoine Pitrou7462e872011-12-03 20:59:24 +010014 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 Brandl810f1d52013-10-13 22:23:27 +020022 `GNOME <http://www.gnome.org>`_. An online `tutorial
Christian Heimesdd15f6c2008-03-16 00:07:10 +000023 <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
Georg Brandl116aa622007-08-15 14:28:22 +000024
Georg Brandlb7354a62014-10-29 10:57:37 +010025 `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_
Georg Brandl116aa622007-08-15 14:28:22 +000026 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 Brandlb7354a62014-10-29 10:57:37 +010037 `PySide <http://qt-project.org/wiki/PySide>`_
Antoine Pitrou5dd95d62011-12-03 21:07:01 +010038 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 Brandl116aa622007-08-15 14:28:22 +000042 `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 Heimes2c181612007-12-17 20:04:13 +000045 C++ toolkit. It provides a native look and feel for applications on
Georg Brandl116aa622007-08-15 14:28:22 +000046 Windows, Mac OS X, and Unix systems by using each platform's native
Christian Heimes2c181612007-12-17 20:04:13 +000047 widgets where ever possible, (GTK+ on Unix-like systems). In addition to
Georg Brandl116aa622007-08-15 14:28:22 +000048 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 Heimes2c181612007-12-17 20:04:13 +000052 of user-contributed modules. wxPython has a book, `wxPython in Action
Benjamin Peterson8c69ecf2015-03-07 09:34:16 -050053 <http://www.manning.com/rappin/>`_, by Noel Rappin and
Georg Brandl116aa622007-08-15 14:28:22 +000054 Robin Dunn.
55
Alexandre Vassalotti8ae3e052008-05-16 00:41:41 +000056PyGTK, PyQt, and wxPython, all have a modern look and feel and more
Georg Brandl48310cd2009-01-03 21:18:54 +000057widgets than Tkinter. In addition, there are many other GUI toolkits for
Alexandre Vassalotti8ae3e052008-05-16 00:41:41 +000058Python, both cross-platform, and platform-specific. See the `GUI Programming
Georg Brandle73778c2014-10-29 08:36:35 +010059<https://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a
Georg Brandl116aa622007-08-15 14:28:22 +000060much more complete list, and also for links to documents where the
61different GUI toolkits are compared.
62