GUI programming with Python
Tkinter Lab – a short Tkinter tutorial
Python GTK+ 3
Formerly known as PyGTK, the Python GTK+ 3 project provides Python bindings to GTK objects (windows, widgets, and so on).
GTK+ is most famously used as the foundation for the GNOME desktop, but it’s available for stand-alone applications on Linux, Windows, and Mac. With Python GTK+ 3, the same framework is available for your Python projects.
When using Python GTK+ 3, UI design can be performed by means of the Glade drag-and-drop tool, an interface designer for GTK+ applications. Interfaces designed in Glade are saved as XML and used by the GtkBuilder object in your application code.
Python GUI with PyQt/PySide2
PyQt implements the popular Qt library. The KDE desktop environment is Qt-based. Python applications with a Qt-based UI can be designed with QtCreator.
Another option to use Qt libraries with Python is with Qt for Python (commonly known as PySide2), available under the LPGL license.
Open source Python library for rapid development of applications
that make use of innovative user interfaces, such as multi-touch apps.
Kivy runs on Linux, Windows, OS X, Android, iOS, and Raspberry Pi.
You can run the same code on all supported platforms.
Built with rapid development and modern devices in mind, Kivy is a Toolkit for Linux (including the Raspberry Pi), Windows, Mac, and Android.
Compare Gtk vs tkinter
Gtk (Version 3) & Python 3 runs on Linux not yet on Windows
The Gtk graphical framework for desktop application building is highly developed allowing much flexibility in the detailing of graphical components. It can work with a GUI designer (Glade) to facilitate the GUI design process. This adds some overhead to the overall project but is probably worth it for large apps with complex GUIs.
tkinter & Python 3 – runs on Linux and Windows
The development / enhancement of tkinter has been on / off for many years but it still remains a lightweight – easy to code – alternative to visual GUI design. tkinter is included with the Python installation. It has some very useful methods for quickly putting together a graphical interface without very much code.
Pygubu is a RAD tool to enable quick and easy development of user interfaces for the Python’s tkinter module. The user interfaces designed are saved as XML files, and, by using the pygubu builder, these can be loaded by applications dynamically as needed.