blob: 48c1f2754111aa878731628443cc2b291de15109 [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
Samuel Gaist46492022020-05-30 03:57:03 +020033 `PySide2 <https://doc.qt.io/qtforpython/>`_
34 Also known as the Qt for Python project, PySide2 is a newer binding to the
35 Qt toolkit. It is provided by The Qt Company and aims to provide a
36 complete port of PySide to Qt 5. Compared to PyQt, its licensing scheme is
37 friendlier to non-open source applications.
Antoine Pitrou5dd95d62011-12-03 21:07:01 +010038
Sanyam Khurana1b4587a2017-12-06 22:09:33 +053039 `wxPython <https://www.wxpython.org>`_
Georg Brandl116aa622007-08-15 14:28:22 +000040 wxPython is a cross-platform GUI toolkit for Python that is built around
Serhiy Storchaka6dff0202016-05-07 10:49:07 +030041 the popular `wxWidgets <https://www.wxwidgets.org/>`_ (formerly wxWindows)
Christian Heimes2c181612007-12-17 20:04:13 +000042 C++ toolkit. It provides a native look and feel for applications on
Georg Brandl116aa622007-08-15 14:28:22 +000043 Windows, Mac OS X, and Unix systems by using each platform's native
Christian Heimes2c181612007-12-17 20:04:13 +000044 widgets where ever possible, (GTK+ on Unix-like systems). In addition to
Georg Brandl116aa622007-08-15 14:28:22 +000045 an extensive set of widgets, wxPython provides classes for online
46 documentation and context sensitive help, printing, HTML viewing,
47 low-level device context drawing, drag and drop, system clipboard access,
48 an XML-based resource format and more, including an ever growing library
Marco Buttu1bb0f372017-03-17 03:50:40 +010049 of user-contributed modules.
Georg Brandl116aa622007-08-15 14:28:22 +000050
Samuel Gaist46492022020-05-30 03:57:03 +020051PyGTK, PyQt, PySide2, and wxPython, all have a modern look and feel and more
Georg Brandl48310cd2009-01-03 21:18:54 +000052widgets than Tkinter. In addition, there are many other GUI toolkits for
Alexandre Vassalotti8ae3e052008-05-16 00:41:41 +000053Python, both cross-platform, and platform-specific. See the `GUI Programming
Georg Brandle73778c2014-10-29 08:36:35 +010054<https://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a
Georg Brandl116aa622007-08-15 14:28:22 +000055much more complete list, and also for links to documents where the
56different GUI toolkits are compared.
57