Qt is a multi-platform C++ GUI programming framework. It's widely considered to be the best option for C++ GUI coding, especially if the executable is to run on many platforms.

I'm now giving Qt a first go, since I'll soon have to maintain some Qt code at work, and I also want to prototype an application - a feasibility test to see what can be done quickly.

Qt has an insteresting licensing strategy - they offer both commercial and free (GPL) licenses, the first for companies, the second for open-source developers (the best example of a large open-source app written in Qt is KDE). There's one problem: they don't offer a free Windows version, only a commercial one. However, after looking around a bit, it's possible to find a non-commercial Windows version of an older release on the web.

I'm going through the "C++ programming with Qt" book, and so far I like it a lot. It's said that Qt is so popular because programmers love it. And I can relate... it's indeed a very robust and powerful platform, with excellent documentation -just what we programmers like. Qt exists for about 10 years - that's 10 years of constant improvement and refactoring, which result in a very nice framework. Qt is "truly object oriented" - some say that when you program with Qt you see "how OO is supposed to be" and I agree. I always suspected that C++ is suitable for GUI programming, but only with Qt I see how it's done right.

Qt comes with "designer" - a powerful GUI editor that shortens the sometimes burdensome tasks of positioning the widgets on dialogs, and with "assistant" - a utility that displays the full Qt help in HTML.

So far I'm really enjoying myself learning Qt and coding the sample applications from the book. The real test will be in couple of days when I feel confident enough with it and will start looking at ways to implement my application.