• Martin Thoma
  • Home
  • Categories
  • Tags
  • Archives
  • Support me

GUI programming with Python

Contents

  • GUI toolkits
  • Comparison
  • See also

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.

GUI toolkits

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

Comparison

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:

Name GTK+ Qt Tk wxWidgets
Latest version (23.01.2015) 3.14.1 5.4.0 8.6.3 3.0.2
Official Website gtk.org qt-project.org tcl.tk wxwidgets.org
Initial release 1998 1995 1991 1992
Written in C C++ C C++
Documentation gtk.org/documentation.php doc.qt.io tkdocs.com wxwidgets.org/docs
Tutorial developer.gnome.org/gtk-tutorial/stable qt-project.org/doc/qt-4.8/tutorials.html tkdocs.com/tutorial wxwidgets.org/docs/tutorials
StackOverflow questions 4,715 37,626 929 1,918
StackOverflow unanswered 1,159 9,704 208 429
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
FileZilla
0 A.D.

There are also some applications which use custom UI toolkits:

  • Sublime Text
  • Firefox
  • LibreOffice

See also

  • 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?

Qt-specific

  • 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

Published

Jan 23, 2015
by Martin Thoma

Category

Code

Tags

  • GTK 1
  • Python 141
  • Qt 1
  • tkinter 1

Contact

  • Martin Thoma - A blog about Code, the Web and Cyberculture
  • E-mail subscription
  • RSS-Feed
  • Privacy/Datenschutzerklärung
  • Impressum
  • Powered by Pelican. Theme: Elegant by Talha Mansoor