If you want to make a beautiful GUI with Python, you should go with PyQt. It comes with many widgets and has a modern look and feel.
It's cross platform, this means it works on Windows, Mac OS X and Linux. You won't have to spend a lot of time rewriting the code to make it work.
If you are new to PyQt, I recommend this book
PyQt vs Tkinter
Tkinter (another GUI module) has a limited number of widgets. So even though Python IDLE was made in Tkinter, you can't really make large apps.
PyQt on the other hand has:
- Widgets for complex UI design.
- Cross platform
- Attractive UI can be designed
- Easy to work with
It also has continuous support, because it's based on the QT framework.
PyQt vs wxPython
wxPython tries to map the native UI and create a common interface. The problem with this approach is that the widgets don't always overlap and are not 100% compatible. This may cause you extra work when trying to run your app on other platforms.
The PyQt documentation is also a lot larger. There are many getting starts howto's. The GUI designer that's available for wxPython is also no match for the PyQt designer.
Summary
So to summarize:
Tkinter is good for small applications, but as soon as you need something more advanced it can't do it
wxPython howto's aren't as complete as good as PyQt howto's and less features
PyQt comes with the most widgets and a complete GUI designer that isn't available for Tkinter or wxPython
Related links:
Top comments (1)
For desktop gui I'm now considering flutter, maybe this is an option.