.. _other-gui-packages:

Other Graphical User Interface Packages
=======================================

Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are
available for Python:

.. seealso::

   `PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_
      provides introspection bindings for C libraries using
      `GObject <https://developer.gnome.org/gobject/stable/>`_.  One of
      these libraries is the `GTK+ 3 <http://www.gtk.org/>`_ widget set.
      GTK+ comes with many more widgets than Tkinter provides.  An online
      `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_
      is available.

      `PyGTK <http://www.pygtk.org/>`_ provides bindings for an older version
      of the library, GTK+ 2.  It provides an object oriented interface that
      is slightly higher level than the C one.  There are also bindings to
      `GNOME <https://www.gnome.org/>`_.  An online `tutorial
      <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.

   `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_
      PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit.  Qt is an
      extensive C++ GUI application development framework that is
      available for Unix, Windows and Mac OS X. :program:`sip` is a tool
      for generating bindings for C++ libraries as Python classes, and
      is specifically designed for Python. The *PyQt3* bindings have a
      book, `GUI Programming with Python: QT Edition
      <https://www.commandprompt.com/community/pyqt/>`_ by Boudewijn
      Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming
      with Python and Qt <https://www.qtrac.eu/pyqtbook.html>`_, by Mark
      Summerfield.

   `PySide <https://wiki.qt.io/PySide>`_
      is a newer binding to the Qt toolkit, provided by Nokia.
      Compared to PyQt, its licensing scheme is friendlier to non-open source
      applications.

   `wxPython <http://www.wxpython.org>`_
      wxPython is a cross-platform GUI toolkit for Python that is built around
      the popular `wxWidgets <https://www.wxwidgets.org/>`_ (formerly wxWindows)
      C++ toolkit.  It provides a native look and feel for applications on
      Windows, Mac OS X, and Unix systems by using each platform's native
      widgets where ever possible, (GTK+ on Unix-like systems).  In addition to
      an extensive set of widgets, wxPython provides classes for online
      documentation and context sensitive help, printing, HTML viewing,
      low-level device context drawing, drag and drop, system clipboard access,
      an XML-based resource format and more, including an ever growing library
      of user-contributed modules.  wxPython has a book, `wxPython in Action
      <https://www.manning.com/books/wxpython-in-action>`_, by Noel Rappin and
      Robin Dunn.

PyGTK, PyQt, and wxPython, all have a modern look and feel and more
widgets than Tkinter. In addition, there are many other GUI toolkits for
Python, both cross-platform, and platform-specific. See the `GUI Programming
<https://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a
much more complete list, and also for links to documents where the
different GUI toolkits are compared.

