Most Popular Python GUI Framework
Janet Swift has already taken a first look at this survey of over 23,000 Python developers and enthusiasts from nearly 200 countries or regions, but wanted to answer a very specific question. What is the most popular way for Python developers to create a user interface?
One of the strengths of Python is the number of libraries and development tools in its ecosystem. But seen from a different perspective, this is also a weakness. Given the availability of third-party add-ons for Python, there are no standards in several important areas.
The Frames and Libraries section of the Python Developer Survey begins with web frameworks, reporting that Flask (41%) and Django (40%) are the best runners while 29% of respondents do not use a web framework. This seems to be valid, as 45% of respondents use Python for web development; is the second most popular field after data analysis, which is the use of Python cited by 51%.
Which Python users need more tools to create GUI interfaces?
The most obvious group is desktop development, which is an option selected by 19% of respondents. Unfortunately, the survey does not separate the GUI Framework tools, but is grouped into “Other Frames and Libraries,” a category dominated by Requests, an HTTP library used by 52%, and the image library, Pillow (31 %); 19% of respondents do not use any of the listings. The list includes five sets of GUI tools: Tkinter, used by 19% of respondents, PyQT (15%), Kivy (6%), wxPython (4%) and PyGTK (3%). Of course, there may be overlaps with respondents selecting more than one of these.
The impossible to pronounce name “Tkinter “ is the abbreviation for “Tk interface “, which is easy to say and conveys the idea that it is a Python link to the Tk GUI toolkit. Co-written by Guido van Rossum and first released in 1991, it is considered Python. In fact Standard GUI. Tkinter is free and included with standard Linux, Windows, and macOS installations of Python. Tkinter may be included in Python, but there are attractive alternatives that make many programmers think that maybe Tkinter’s days could be numbered.
Tkinter’s main competitor, used by 15%, is PyQt, the Python link in the Qt cross-platform GUI toolkit, which is pronounced “nice”. Developed by Riverbank Computing and first released in 1998, it is compatible with Windows, Linus and macOS. It is subject to various licenses: GNU, GPL and commercial. It is currently in version 6.3 which was released in April 2022. This is probably the GUI library that most people think of when considering any kind of alternative. It is sophisticated and very promising, but to achieve it all you need a commercial license.
wxPython was also first launched in 1998 and its last stable release. 4.1.1 was November 2020. It is a wxWidgets wrapper implemented as a Python extension module. It is free software under the wxWindows license approved by the Free Software Foundation and the Open Source Initiative. Dropbox is an app developed with wxPython but only 4% of respondents use it in the Python developer survey.
PyGTK wraps the GTK graphical user interface library. It is also free software and LGPL licensed. Its original author is GNOME developer James Henstridge, but its most recent stable release, 2.24, was in 2011 and has been replaced by PyGObject, which provides links to GObject-based libraries such as GTK, GStreamer , WebKitGTK, GLib and GIO. Although PyGTK is used in 3%, its replacement does not appear in the list.
Kivy is relatively newcomer, as it was originally released in 2011 and was recently updated, to version 2.1.0, in March 2022. It is not an alternative to Tkinter, as it fills a different niche: developing mobile and other applications multi-touch applications that require a natural user interface. It is distributed under the terms of the MIT license and can be run on Android, iOS, Linux, macOS and Windows. 6% use it, which fits with the finding that 6% of Python usage is for mobile development.
PyGame is another framework that can be considered as an alternative to Tkinter and is used by 13% of respondents in the Python developer survey, which matches well with 10% who use Python for game development and 12 % for computer graphics. PyGame was originally released in October 2000, written by Ppete Shinners to replace PySDL, and its latest version 2.1.2. was released in December 2021. It is released under the GNU General Public License which provides for it to be distributed in both open source and commercial software.
So what is the conclusion?
Tkinter is probably better regarded as the true standard Python GUI than many programmers think. It’s easy to call it old and not exciting and worry about its place in the future, but more Python programmers use it than anything else and it’s completely open source.
Python 2021 Developer Survey Results
Python is everywhere: 2021 survey results
Creating the Python user interface with Tkinter: the Canvas widget
Kivy 1.10 released
To stay informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed, and follow us on Twitter, Facebook or Linkedin.
or send your comment by email to: firstname.lastname@example.org