Saturday, December 19, 2009

GNUmed user interface toolkit considerations

Historically wxpython has been the only user interface toolkit that was available for MS Windows, GNU/Linux and Apple Mac OSX under a sufficiently free license (GPL in our case). GNUmed founders decided to go for wxpython as the primary GUI toolkit. That has worked out so far but brings some challenges as well.
Things have changes since. Many toolkits have appeared, some previously available have seen their source made freely available. QT comes to mind. It is perceived as a viable alternative by the occasional mailing list poster but few understand what a switch would involve.WxPython and PyQT are both mature tookits. They have both been used in large software projects and are actively developed. The basic features are not really different.
There are however some special features that GNUmed could make use of which are not present in both toolkits.

Feature WxPython PyQT

backing community Nokia

wxpython relies on few individuals, if they go away wxpython might die
browser widget wxmozilla webkit widget

html support in wxpython is very basic
GUI designer wxglade, wxDesigner QTDesigner

wxglade is very basic and wxDesigner is non-free
community active, medium sized active, large

developer pool for wxpython is limited, few highly skilled individuals exist, small medium skilled pool, QT is more widely used because of KDE
printing support decent mature

printing support is a tough issue for wxpython and GNUmed, probably easier with QT
device support PC, other : limited PC , other : various mobile devices

QT is available for N900 , Nokia mobile phones, maybe not a huge issue for GNUmed
Linux support great great

no issues
Windows support some issues few issues

because of smaller team wxpython has issues keeping up with Vista and Windows 7
Mac support few issues few issues

QT has probably fewer issues on Mac
3rd party connectivity n/a n/a

QT is used for KDE so it could be easier to interact/integrate with KDEPIM, KMAIL
issues for new devs some some

novice coders would probably get going faster with QT because of the tools provided, maybe less an issue for experienced devs
documentation good good

QT probably has more demo code/apps to look at and more coders to help out on mailing lists or IRC
cost of switch none high

all code for wx is there , now, going for QT involves a complete GUI rewrite

All in all the GNUmed project has no resources , neither in terms of staff nor financial resources to switch from WxPython to PyQT even if that was seen a beneficial. As long as there is only 1 main coder for GNUmed no resources will be allocated to this. That would mean GNUmed development would efectively be stoped until the rewrite is complete. This currently is no option.
It is estimated that an experienced python developer would need roughly one year to rewrite and document the GUI code done in QT.
The GNUmed project acknowledges the issue and will provide all support it can to third parties that will evaluate a GUI rewrite using QT.


gour said...


Why don't you consider PyGTK as well?

Mit-Dasein Jetzt said...

Hi. I´m considering building a medical app with Qt. Why don´t we use C++/Qt? I really would like to contribute, but I have to understand more about GNUMed spirit. Regards, Arthur Mit-Dasein Jetzt

Sebastian Hilbert said...


We lack the C++ skills. Our core developer is good at python and python has proven flexible enough. A rewrite is out of the question given our ressources.

As python is easy to learn we encourage you to take a look at it.

I am not aware of any serious effort using QT an C++. There is a German company which had the same idea but they did not pursue the option.

Take a look at to find developer information. Ask at if anything is unclear or if you want to know more about who is who and what you could add to the equation.

Best regards,

Sebastian Hilbert said...

Hi Gour,

Nice hearing from you. You are right PyGTK could be another option. I only looked at Py/QT since I use KDE. I know that Gnome is just as good an option.

Best regards,

gour said...


Believe it or not, but it seems that I'll drop gtk2hs for as my GUI toolkit and use wxhaskell considering it better option for Mac OS X (which my 'mentor' has switched to recently).

In that light, I'd say that staying with wxWidgets is better than Qt owned by corporate.

otoh, I wonder (maybe I'll post to the list) why you didn't consider to use wxFormBuilder ( - SVN version has support for Python, although in my case I'd use XRC files.

Check whic even does not mention wxGlade.