Version 6, last updated by uniquesnowflake8 at Apr 26 20:11 2009 UTC
GUI Libraries
- SWT -- Cross platform using Java.
- QT -- Cross platform written in C++, but has bindings to other languages, including Java.
- GTK - Based in C, but also has other language bindings.
- Swing - Standard Java GUI Development.
Overall Thoughts (Michael Beenen):
From what I've read on various forums and other areas, people have a lot of positive things to say about Qt. Most advocates of Qt say that it is quicker to learn and requires less code to do things when compared to GTK. The one downside is some licensing issues, so if we decided we wanted to market our product, there may be some red tape (and possible licensing fees?), its looked a bit confusing at first glance. There is also a QT IDE that could be useful, should we decide to code in C++.
GTK sounds a bit more complicated to learn, and because of its implementation in C, there may be some pains when using its bindings to C++ or Java, should we decide to use one of those languages. The Java binding is also not available for Windows. It is one of the most widely used cross platform tool kits, so it probably should not be discounted, unless we decide to work in Java.
SWT and Swing would probably take a little less time to get started, since they are not plugins, just libraries. Plenty of opinions on which of the two is better, Swing vs. SWT 1, Swing vs. SWT 2, to give a couple, seems that SWT is a bit easier to learn, where swing provides a few more advanced widget types.
There certainly are some other libraries, such as WxWidgets/WxWindows (read that it was rather complex to get going), so feel free to add on any you have experience with or have heard of, and take a look around to see what you think of these.
Overall Thoughts (Alan Fineberg):
I heard positive things about Qt as well, and it's got bindings to Python, which could be useful. I like the idea of using a dynamic language, but in practice I'm not sure how well the Qt tools and editors integrate with Python. Scott, our TA, also supports Qt and recommended it to us, and may be able to help set us up with Python if we ask nicely :)