Alcides Fonseca

40.197958, -8.408312

Python Universal GUI revisited

Do you remember my post about the need for a Python Universal GUI? There are a lot of solutions for developing Python GUI, but if you are considering multi-platform there isn’t a clear choice. Also, I haven’t find any library that makes GUI development easy1. The folks from Spain have discussed it the last days, so I’ve decided to start a project that will solve this problem.

Goals

  1. Has a simple and natural API. It will be somehow based on Ruby Shoes, but with a more OOP approach (Python doesn’t have blocks like Ruby does)
  2. It will use the best GUI library available in your system. This means, it will try to load wxPython, if you have wxWidgets, pyGTK if you are using Gnome, pyQt if you are using KDE, and so on. It will always fallback to tkinter, since it’s the one that comes with all Python distributions.
  3. It will still be possible to use library-specific features.

This way, you will only have to know a easy-to-use API, and the code will run in any system.

The Roadmap

Right now, I’m starting with the tkinter connector, since it’s the fallback one. I am also looking for an interesting name (suggestions in the comments below, please). The castellano-speaking folks suggested GUIdo, but since he doesn’t care about this GUI issue, I won’t go with that name.

I will then proceed with the wxWidgets since it’s my favourite, and then IronPython’s WinForms. Yes, I find it the best solution for a Windows-specific GUI, although it runs in a different runtime.

At this point I will have examples of the three situations (different runtime, a non-native library, and the fallback) so I will have the connector picker done.

So I’m also looking for people interesting in helping me in this project, since will be made in the few spare time I have. I’m looking for pyQt, pyGTK, Jython’s Swing, and other alternatives you might thing of.

Resources:

1 My choice at the moment is wxWidgets and I use wxGlade to generate the UI code.