5 Top Python GUI Frameworks for 2015

pyGUI

As a Python developer, sooner or later you’ll want to write an application with a graphical user interface. Fortunately, there are a lot of options on the tools front: The Python wiki on GUI programming lists over 30 cross-platform frameworks, as well as Pyjamas, a tool for cross-browser Web development based on a port of the Google Web Toolkit.

How to choose between all these options for Python GUIs? I started by narrowing it down to those that included all three platforms (Windows, Mac, and Linux) and, where possible, Python 3. After that filtering, I found four toolkits (Gtk, Qt, Tk, and wxWidgets) and five frameworks (Kivy, PyQt, gui2Py, libavg and wxPython). Here’s why I like them.

To find Python-related jobs, click here.

Kivy

One of the more interesting projects, the liberal MIT-licensed Kivy is based on OpenGL ES 2 and includes native multi-touch for each platform and Android/iOS. It’s an event-driven framework based around a main loop, and is thus very suitable for game development. Your application adds callbacks from the main loop at a scheduled frequency, or by one-off trigger. The Kivy framework is very powerful for handling everything from widgets to animation, and includes its own language for describing user interface and interactions.

If you want to create cross-platform graphical applications, or just need a very powerful cross-platform GUI, Kivy is highly recommended.

PyQt

Qt is a multi-licensed cross-platform framework written in C++. If your application is completely open source, you can use Qt for free under the community license; otherwise you’ll need a commercial license. Qt has been around for a long time and was owned by Nokia for a while; it’s a very comprehensive library of tools and APIs, widely used in many industries, and covers many platforms including mobile. If a gadget such as a SatNav has a GUI, there’s a good chance it’ll be Qt based.

PyGUI

Compared to Kivy and PyQt, PyGUI is considerably simpler and just for Unix, Macintosh and Windows platforms. Developed by Dr. Greg Ewing at the University of Canterbury in New Zealand, the MVC framework focuses on fitting into the Python ecosystem as easily as possible.

One of the platform’s aims is to interpose as little code as possible between the Python application and the platform’s underlying GUI so the application’s display always reflects the native GUI of the platform. If you’re after a simple and quick way to learn GUI, start with this one.

Next Up: libavg and wxPython (click here or below)

Comments

10 Responses to “5 Top Python GUI Frameworks for 2015”

November 26, 2014 at 11:48 am, Bob said:

I didn’t know things like these can be done using Python.

Reply

August 11, 2015 at 12:07 pm, Chartres said:

Hey, thanks for the overview. Most of the projects haven’t been updated since sesveral years… is that normal? Is there perhaps a shiny new framework that is in its early stages?

Reply

November 16, 2015 at 6:08 pm, Gregory said:

There’s PySide which is also a Qt python binding. I haven’t used it in years but I recently read somewhere that its latest release is from October 2015. I think it’s available under LGPL as well.

Reply

December 01, 2015 at 5:50 pm, Airton Granero said:

Some corrections and updates

Kivy to this date (December 2015) only supports Python 3.3 but with packaging for Python 2.7 only. This is complete no go as Python 3.4 asyncio has become so important so quick.

PyGUI do not work on Python 3.5 (at least, maybe even others).

libavg is not supported in Python 3.x (or any Python 64 bit version).

Now wxPython (Phoenix version) do not work on Python 3.5 (but works on Python 3.4 even in 64 bit Windows).

Reply

December 03, 2015 at 10:50 pm, Fatima said:

Hey. i need help with paython program for my final presentation. i need to creat program with gui. can anyone help me

Reply

January 24, 2016 at 1:58 am, sagive said:

This is the real problem with python! Lack of GUI support for 3.5, The only real out of the box GUI that works right now is PyQt which has a problematic licensing for most project and is costly for a beginner developer.

This is a real turn off for programmers coming from other languages. i hope some community project would kickoff and soon otherwise python might be a dead language.

Reply

February 10, 2016 at 5:34 pm, Mike said:

There’s always Tkinter. It works on every version of Python. It sounds like Kivy supports Python 3.5 too

Reply

July 04, 2016 at 12:45 pm, Jay Jay said:

The problem is there are 30 half baked ways to do GUI in Pyton instead of 2 or 3 well maintained Projects. It’s kind of like it is with standards or linux distributions…

Reply

August 25, 2016 at 3:57 pm, Herbert Mischel said:

Actually – Lianja is the only drag and drop python GUI builder that I have seen.

Reply

January 06, 2017 at 2:58 pm, Tony Rivera said:

I couldn’t agree more. I have been researching this for close to three months now and I am not anywhere closer to having a solution I can work with.

Reply

Post a Comment

Your email address will not be published.