A graphical user interface (GUI) is essential for applications which should be used by standard computer users (non-developers, not computer scientists, ...). However, I have almost no experience with GUI development outside of the web.
Multiple GUI toolkits exist and the only one I have ever used is Tk for a very, very simple GUI.
In this article, I want to share some of my thoughts about GUI development with Python as a beginner. I might update this in future.
A widget toolkit, widget library, GUI toolkit, or UX library is a library or a collection of libraries containing a set of graphical control elements (called widgets) used to construct the graphical user interface (GUI) of programs.
Source: Widget toolkit
I am only interested in GUI toolkits
- which work on Ubuntu 12.04+,
- which have a Python binding,
- which are OpenSource and have a good license,
- which are used by others (and hence have enough documentation and examples)
It seems to me that only the following four toolkits fulfill these requirements: GTK, Qt, Tk, wxWidgets. Some of these have multiple Python bindings and all have multiple GUI builders / designers. I tried to find the most commonly used one. Please let me know if I should add something, replace something:
|Latest version (23.01.2015)||3.14.1||5.4.0||8.6.3||3.0.2|
|License||LGPL 2.1||LGLP 3.0 (mutliple||BSD-style||wxWindows License|
|Python binding||PyGTK (docs)||PySide (docs), PyQt||Tkinter (docs)||wxPython (docs)|
|Python 3 support||yes||yes||yes?||yes|
|Designer||Glade Interface Designer||QtDesigner, QtCreator, QDevelop, Edyuk||SpecTcl||wxGlade|
|Famous applications||Gnome applications like Inkscape, OTR-Verwaltung||vlc, Virtual Box, KDE applications like K3B, Anki||I could not find any||Code::Blocks
There are also some applications which use custom UI toolkits:
- List of widget toolkits
- Graphical user interface builder
- The Python GTK+ 3 Tutorial
- Why are Tk GUI's considered ugly?
- wxPython vs PyQt vs PyGTK: when and what to use?
- What's the difference between GTK and QT?
- Differences Between PySide and PyQt
- Should I use PyQt or PySide for a new Qt project?
- PyQt or PySide - which one to use
- Developing Cross Platform Application using Qt, PyQt and PySide : Introduction - Part 1 of 5