Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 1 | .. _other-gui-packages: |
| 2 | |
| 3 | Other Graphical User Interface Packages |
| 4 | ======================================= |
| 5 | |
Antoine Pitrou | c1bd489 | 2011-12-04 23:56:30 +0100 | [diff] [blame] | 6 | Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are |
| 7 | available for Python: |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 8 | |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 9 | .. seealso:: |
| 10 | |
Georg Brandl | 5d94134 | 2016-02-26 19:37:12 +0100 | [diff] [blame] | 11 | `PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_ |
Marco Buttu | 1bb0f37 | 2017-03-17 03:50:40 +0100 | [diff] [blame] | 12 | PyGObject provides introspection bindings for C libraries using |
Georg Brandl | 525d355 | 2014-10-29 10:26:56 +0100 | [diff] [blame] | 13 | `GObject <https://developer.gnome.org/gobject/stable/>`_. One of |
Sanyam Khurana | 1b4587a | 2017-12-06 22:09:33 +0530 | [diff] [blame] | 14 | these libraries is the `GTK+ 3 <https://www.gtk.org/>`_ widget set. |
Antoine Pitrou | 7462e87 | 2011-12-03 20:59:24 +0100 | [diff] [blame] | 15 | GTK+ comes with many more widgets than Tkinter provides. An online |
Sanyam Khurana | 1b4587a | 2017-12-06 22:09:33 +0530 | [diff] [blame] | 16 | `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs.io/>`_ |
Antoine Pitrou | 7462e87 | 2011-12-03 20:59:24 +0100 | [diff] [blame] | 17 | is available. |
| 18 | |
Marco Buttu | 1bb0f37 | 2017-03-17 03:50:40 +0100 | [diff] [blame] | 19 | `PyGTK <http://www.pygtk.org/>`_ |
| 20 | PyGTK provides bindings for an older version |
Antoine Pitrou | 7462e87 | 2011-12-03 20:59:24 +0100 | [diff] [blame] | 21 | 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 Brandl | 5d94134 | 2016-02-26 19:37:12 +0100 | [diff] [blame] | 23 | `GNOME <https://www.gnome.org/>`_. An online `tutorial |
Christian Heimes | dd15f6c | 2008-03-16 00:07:10 +0000 | [diff] [blame] | 24 | <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available. |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 25 | |
Georg Brandl | 5d94134 | 2016-02-26 19:37:12 +0100 | [diff] [blame] | 26 | `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_ |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 27 | 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 Buttu | 1bb0f37 | 2017-03-17 03:50:40 +0100 | [diff] [blame] | 31 | is specifically designed for Python. |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 32 | |
Georg Brandl | 5d94134 | 2016-02-26 19:37:12 +0100 | [diff] [blame] | 33 | `PySide <https://wiki.qt.io/PySide>`_ |
Marco Buttu | 1bb0f37 | 2017-03-17 03:50:40 +0100 | [diff] [blame] | 34 | PySide is a newer binding to the Qt toolkit, provided by Nokia. |
Antoine Pitrou | 5dd95d6 | 2011-12-03 21:07:01 +0100 | [diff] [blame] | 35 | Compared to PyQt, its licensing scheme is friendlier to non-open source |
| 36 | applications. |
| 37 | |
Sanyam Khurana | 1b4587a | 2017-12-06 22:09:33 +0530 | [diff] [blame] | 38 | `wxPython <https://www.wxpython.org>`_ |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 39 | wxPython is a cross-platform GUI toolkit for Python that is built around |
Serhiy Storchaka | 6dff020 | 2016-05-07 10:49:07 +0300 | [diff] [blame] | 40 | the popular `wxWidgets <https://www.wxwidgets.org/>`_ (formerly wxWindows) |
Christian Heimes | 2c18161 | 2007-12-17 20:04:13 +0000 | [diff] [blame] | 41 | C++ toolkit. It provides a native look and feel for applications on |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 42 | Windows, Mac OS X, and Unix systems by using each platform's native |
Christian Heimes | 2c18161 | 2007-12-17 20:04:13 +0000 | [diff] [blame] | 43 | widgets where ever possible, (GTK+ on Unix-like systems). In addition to |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 44 | 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 Buttu | 1bb0f37 | 2017-03-17 03:50:40 +0100 | [diff] [blame] | 48 | of user-contributed modules. |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 49 | |
Alexandre Vassalotti | 8ae3e05 | 2008-05-16 00:41:41 +0000 | [diff] [blame] | 50 | PyGTK, PyQt, and wxPython, all have a modern look and feel and more |
Georg Brandl | 48310cd | 2009-01-03 21:18:54 +0000 | [diff] [blame] | 51 | widgets than Tkinter. In addition, there are many other GUI toolkits for |
Alexandre Vassalotti | 8ae3e05 | 2008-05-16 00:41:41 +0000 | [diff] [blame] | 52 | Python, both cross-platform, and platform-specific. See the `GUI Programming |
Georg Brandl | e73778c | 2014-10-29 08:36:35 +0100 | [diff] [blame] | 53 | <https://wiki.python.org/moin/GuiProgramming>`_ page in the Python Wiki for a |
Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 54 | much more complete list, and also for links to documents where the |
| 55 | different GUI toolkits are compared. |
| 56 | |