A number of years ago, I happened to come across an article on GUI programming
with C++. I had just started learning C++ and was amazed at how little code the
author2 needed to produce a complete game, including the menus. Of course, there
were a number of constructs that needed explanation, but after a short time I was
hooked: The Qt library that he used turned out not only to have a very extensive
collection of all kinds of useful widgets (also known to Windows programmers as
control elements), but in addition had standard algorithms, data structures, and
other nongraphic classes that made programming with C++ so intuitive, in a way
that I had never seen before in any other toolkit.
The software company, Trolltech, was also promoting its own platform-independent
API. This toolkit, which could produce programs for both Windows and Linux, simply
by recompiling the code, attracted my attention. Shortly after this, nearly six
years ago to the day, I joined the KDE project, which was developing an entire desktop
based on Qt. Today, together with GNOME, KDE is one of the most important
desktops under Linux. But Qt is also used by a substantial number of companies:
Google Earth is based on Qt, as is the telephony software Skype and the video
editing program MainActor.
When Trolltech published a pre-version of Qt 4 in 2005, I started trying out several
of the new functionalities and was very impressed. For the first time there was
a uniform licensing scheme for variations of Qt, which until then were different
for Linux and Mac OS X: Quid pro quo—those companies that publish a program
under an open source license may use the open source version of the library. But
if the company is developing proprietary programs, then it pays for Qt license fees,
thus supporting the development of the toolkit, and receives support from the
manufacturer.
This structural level is of relevance as far as the licensing of the commercial Qt
version. Trolltech has three editions of Qt 4 available: Qt Console for nongraphic
development, and Qt Desktop Light and Qt Desktop as versions containing all
features. The open source version in each case corresponds to the desktop edition,
so it is not restricted in any way in terms of size.