blob: da66003b621bc04e1ba7a35d7a487c5acf181ce5 [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
13 `GObject <http://developer.gnome.org/gobject/stable/>`_. One of
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
Christian Heimesdd15f6c2008-03-16 00:07:10 +000022 `GNOME <http://www.gnome.org>`_. One well known PyGTK application is
23 `PythonCAD <http://www.pythoncad.org/>`_. An online `tutorial
24 <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
Georg Brandl116aa622007-08-15 14:28:22 +000025
Georg Brandl495f7b52009-10-27 15:28:25 +000026 `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/>`_
Georg Brandl116aa622007-08-15 14:28:22 +000027 PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an
28 extensive C++ GUI application development framework that is
29 available for Unix, Windows and Mac OS X. :program:`sip` is a tool
30 for generating bindings for C++ libraries as Python classes, and
31 is specifically designed for Python. The *PyQt3* bindings have a
32 book, `GUI Programming with Python: QT Edition
33 <http://www.commandprompt.com/community/pyqt/>`_ by Boudewijn
34 Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming
35 with Python and Qt <http://www.qtrac.eu/pyqtbook.html>`_, by Mark
36 Summerfield.
37
Antoine Pitrou5dd95d62011-12-03 21:07:01 +010038 `PySide <http://www.pyside.org/>`_
39 is a newer binding to the Qt toolkit, provided by Nokia.
40 Compared to PyQt, its licensing scheme is friendlier to non-open source
41 applications.
42
Georg Brandl116aa622007-08-15 14:28:22 +000043 `wxPython <http://www.wxpython.org>`_
44 wxPython is a cross-platform GUI toolkit for Python that is built around
45 the popular `wxWidgets <http://www.wxwidgets.org/>`_ (formerly wxWindows)
Christian Heimes2c181612007-12-17 20:04:13 +000046 C++ toolkit. It provides a native look and feel for applications on
Georg Brandl116aa622007-08-15 14:28:22 +000047 Windows, Mac OS X, and Unix systems by using each platform's native
Christian Heimes2c181612007-12-17 20:04:13 +000048 widgets where ever possible, (GTK+ on Unix-like systems). In addition to
Georg Brandl116aa622007-08-15 14:28:22 +000049 an extensive set of widgets, wxPython provides classes for online
50 documentation and context sensitive help, printing, HTML viewing,
51 low-level device context drawing, drag and drop, system clipboard access,
52 an XML-based resource format and more, including an ever growing library
Christian Heimes2c181612007-12-17 20:04:13 +000053 of user-contributed modules. wxPython has a book, `wxPython in Action
Georg Brandl116aa622007-08-15 14:28:22 +000054 <http://www.amazon.com/exec/obidos/ASIN/1932394621>`_, by Noel Rappin and
55 Robin Dunn.
56
Alexandre Vassalotti8ae3e052008-05-16 00:41:41 +000057PyGTK, PyQt, and wxPython, all have a modern look and feel and more
Georg Brandl48310cd2009-01-03 21:18:54 +000058widgets than Tkinter. In addition, there are many other GUI toolkits for
Alexandre Vassalotti8ae3e052008-05-16 00:41:41 +000059Python, both cross-platform, and platform-specific. See the `GUI Programming
Georg Brandl116aa622007-08-15 14:28:22 +000060<http://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a
61much more complete list, and also for links to documents where the
62different GUI toolkits are compared.
63