blob: 4548459f8e261d70a56842d0e9405676aba2430d [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
Georg Brandl5d941342016-02-26 19:37:12 +010011 `PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_
Marco Buttu1bb0f372017-03-17 03:50:40 +010012 PyGObject provides introspection bindings for C libraries using
Georg Brandl525d3552014-10-29 10:26:56 +010013 `GObject <https://developer.gnome.org/gobject/stable/>`_. One of
Sanyam Khurana1b4587a2017-12-06 22:09:33 +053014 these libraries is the `GTK+ 3 <https://www.gtk.org/>`_ widget set.
Antoine Pitrou7462e872011-12-03 20:59:24 +010015 GTK+ comes with many more widgets than Tkinter provides. An online
Sanyam Khurana1b4587a2017-12-06 22:09:33 +053016 `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs.io/>`_
Antoine Pitrou7462e872011-12-03 20:59:24 +010017 is available.
18
Marco Buttu1bb0f372017-03-17 03:50:40 +010019 `PyGTK <http://www.pygtk.org/>`_
20 PyGTK provides bindings for an older version
Antoine Pitrou7462e872011-12-03 20:59:24 +010021 of the library, GTK+ 2. It provides an object oriented interface that
22 is slightly higher level than the C one. There are also bindings to
Georg Brandl5d941342016-02-26 19:37:12 +010023 `GNOME <https://www.gnome.org/>`_. An online `tutorial
Christian Heimesdd15f6c2008-03-16 00:07:10 +000024 <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
Georg Brandl116aa622007-08-15 14:28:22 +000025
Georg Brandl5d941342016-02-26 19:37:12 +010026 `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_
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
Marco Buttu1bb0f372017-03-17 03:50:40 +010031 is specifically designed for Python.
Georg Brandl116aa622007-08-15 14:28:22 +000032
Georg Brandl5d941342016-02-26 19:37:12 +010033 `PySide <https://wiki.qt.io/PySide>`_
Marco Buttu1bb0f372017-03-17 03:50:40 +010034 PySide is a newer binding to the Qt toolkit, provided by Nokia.
Antoine Pitrou5dd95d62011-12-03 21:07:01 +010035 Compared to PyQt, its licensing scheme is friendlier to non-open source
36 applications.
37
Sanyam Khurana1b4587a2017-12-06 22:09:33 +053038 `wxPython <https://www.wxpython.org>`_
Georg Brandl116aa622007-08-15 14:28:22 +000039 wxPython is a cross-platform GUI toolkit for Python that is built around
Serhiy Storchaka6dff0202016-05-07 10:49:07 +030040 the popular `wxWidgets <https://www.wxwidgets.org/>`_ (formerly wxWindows)
Christian Heimes2c181612007-12-17 20:04:13 +000041 C++ toolkit. It provides a native look and feel for applications on
Georg Brandl116aa622007-08-15 14:28:22 +000042 Windows, Mac OS X, and Unix systems by using each platform's native
Christian Heimes2c181612007-12-17 20:04:13 +000043 widgets where ever possible, (GTK+ on Unix-like systems). In addition to
Georg Brandl116aa622007-08-15 14:28:22 +000044 an extensive set of widgets, wxPython provides classes for online
45 documentation and context sensitive help, printing, HTML viewing,
46 low-level device context drawing, drag and drop, system clipboard access,
47 an XML-based resource format and more, including an ever growing library
Marco Buttu1bb0f372017-03-17 03:50:40 +010048 of user-contributed modules.
Georg Brandl116aa622007-08-15 14:28:22 +000049
Alexandre Vassalotti8ae3e052008-05-16 00:41:41 +000050PyGTK, PyQt, and wxPython, all have a modern look and feel and more
Georg Brandl48310cd2009-01-03 21:18:54 +000051widgets than Tkinter. In addition, there are many other GUI toolkits for
Alexandre Vassalotti8ae3e052008-05-16 00:41:41 +000052Python, both cross-platform, and platform-specific. See the `GUI Programming
Georg Brandle73778c2014-10-29 08:36:35 +010053<https://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a
Georg Brandl116aa622007-08-15 14:28:22 +000054much more complete list, and also for links to documents where the
55different GUI toolkits are compared.
56