[FAQ] "Best" GUI toolkit for python

pozz pozzugno at gmail.com
Mon Oct 17 18:58:42 EDT 2016


I'm sorry, I know it is a FAQ..., but I couldn't find a good answer.

I'm learning python and I'd like to start creating GUI applications, 
mainly for Windows OS. In the past, I wrote many applications in Visual 
Basic 4: it was very fast and you could create simple but effective GUIs 
in Windows in some minutes.

Actually I'm not interested in cross-platform application, however it 
could be a good feature to have.

I understand there are some alternatives, with pros and cons:

- Tkinter
- GTK (pyGObject for Python3)
- QT (pyQt or pySide for LGPL licence)
- wxPython (wxPython/Phoenix for Python3)
- FLTK

There is an entire page on python website that talks about GUI toolkits: 
https://wiki.python.org/moin/GuiProgramming
I can't test all of them to understand what is the best for my needs.


I started with GTK some weeks ago and I encountered many troubles:
- pyGtk is old, better to use pyGObject (it isn't so clear at first)
- Glade Windows binaries on website are old, better to use the binary
   that can be downloaded from Msys2 project
I'm not sure, but I don't like too much this solution... maybe it's only 
a matter of time.
Glade application (for visual GUI building) seems not very stable under 
Windows. I had many crashes. Moreover it's very complex to understand 
the arrangement of widgets on a window. Even a simple listbox is 
implemented through the GtkTreeView widget that is... very complex to 
understand.
Documentation isn't so good: it's so simple to put a note on the Windows 
binaries page of glade to download a more recent version through Msys2!


So I'm thinking to evaluate other solutions. wxWidgets is attractive for 
it's native look&feel, but python implementation Phoenix for Python3 is 
in alpha stage. Moreover wxGlade (the GUI builder application) needs 
Python2, but I couldn't understand if the generated code is compatible 
with wxPython/Phoenix.


QT is another alternative, but I need pySide for LGPL support (pyQt 
isn't LGPL). Is it good as pyQt project?


Any suggestions? One of my requirement is to have a good 
documentation/support from community... and the solution must be 
currently active.



More information about the Python-list mailing list