C++ GUI Programming with Qt 3
Authors: Blanchette J. Summerfield M.
Published year: 2006
Pages: 8-9/140
Buy this book on amazon.com >>

Acknowledgments

Our first acknowledgment goes to Eirik Chambe-Eng, Trolltech's president. Eirik not only enthusiastically encouraged us to write the book, he also allowed us to spend a considerable amount of our work time writing it. Eirik and Trolltech CEO Haavard Nord both read the manuscript and provided valuable feedback. Their generosity and foresight was aided and abetted by Matthias Ettrich, Trolltech's lead developer and our boss. Matthias cheerfully accepted our neglect of duty as we obsessed over the writing of this book and gave us a lot of advice on good Qt programming style.

We asked two Qt customers, Paul Curtis and Klaus Schmidinger, to be our external reviewers. Both are Qt experts with an amazing attention to technical detail, which they proved by spotting some very subtle errors in our manuscript and suggesting numerous improvements.

Within Trolltech, alongside Matthias, our most stalwart reviewer was Reginald Stadlbauer. [*] His technical insight was invaluable, and he taught us how to do some things in Qt that we didn't even know were possible.

[*] Reginald has now moved to Germany, where he co-founded froglogic, a software consultancy.

Our other key reviewers within Trolltech were Trenton Schulz, Andy Shaw, and Andreas Aardal Hanssen. Trenton and Andy gave feedback on all aspects of the book and were especially helpful regarding Qt/Mac and Qt/Windows. Andreas gave us invaluable help refining Part I.

In addition to the reviewers mentioned above, we received expert help from Warwick Allison (2D graphics), Eirik Chambe-Eng (Qt's history), Matthias Ettrich (event processing and custom widgets), Harald Fernengel (databases), Volker Hilsheimer (ActiveX), Bradley Hughes (multithreading), Trond Kjernsen (3D graphics and databases), Lars Knoll (2D graphics), Sam Magnuson ( qmake ), Dimitri Papadopoulos (Qt/X11), Paul Olav Tvete (custom widgets and Qt/Embedded), Rainer Schmid (networking and XML), and Gunnar Sletta (event processing).

Extra thanks are due to Trolltech's support team for helping to keep our support load under control while the book consumed so much of our time, and to Trolltech's system administrators for keeping our machines running and our networks communicating throughout the project.

We are also grateful to Troy Kitch from Borland for giving us permission to include Borland C++ compilers on the accompanying CD, and to the SQLite developers for putting their database into the public domain.

On the production side, Rainer Schmid led the team that created the accompanying CD, ably supported by Harald Fernengel and Andy Shaw. Trolltech's Cathrine Bore handled the contracts and legalities on our behalf . Jeff Kingston, author of the Lout typesetting tool, gave us advice and enhanced the tool in the light of our feedback. Jill Harry of Prentice Hall had faith in the project from the start and ensured that all the practical matters were smoothly handled, leaving us free to concentrate on the writing. And Lisa Iarkowski turned our camera-ready manuscript into the beautiful volume you now hold in your hands.

A Brief History of Qt

The Qt toolkit first became publicly available in May 1995. It was initially developed by Haavard Nord (Trolltech's CEO) and Eirik Chambe-Eng (Trolltech's president). Haavard and Eirik met each other at the Norwegian Institute of Technology in Trondheim, Norway, where they both graduated with master's degrees in computer science.

Haavard's interest in C++ GUI development began in 1988 when he was commissioned by a Swedish company to design and implement a C++ GUI toolkit. A couple of years later, in the summer of 1990, Haavard and Eirik were working together on a C++ database application for ultrasound images. The system needed to be able to run with a GUI on Unix, Macintosh, and Windows. One day that summer, Haavard and Eirik went outside to enjoy the sunshine, and as they sat on a park bench, Haavard said, "We need an object-oriented display system." The resulting discussion laid the intellectual foundation for the object-oriented multiplatform GUI toolkit they would soon go on to build.

In 1991, Haavard started writing the classes that eventually became Qt, collaborating with Eirik on the design. The following year, Eirik came up the ideafor "signals and slots", a simple but powerful GUI programming paradigm. Haavard took the idea and produced a hand-coded implementation. By 1993, Haavard and Eirik had developed Qt's first graphics kernel and were able to implement their own widgets. At the end of the year, Haavard suggested that they go into business together to build "the world's best C++ GUI toolkit".

The year 1994 began inauspiciously with the two young programmers wanting to enter a well established market, with no customers, an unfinished product, and no money. Fortunately, both their wives had work and were willing to support their husbands for the two years Eirik and Haavard expected to need to develop the product and start earning an income.

They chose 'Q' as the class prefix because the letter looked beautiful in Haavard's Emacs font. The 't' was added to stand for "toolkit", inspired by "Xt", the X Toolkit. The company was incorporated on 4 March 1994, originally as "Quasar Technologies", then as "Troll Tech", and today as "Trolltech".

In April 1995, thanks to a contact made through one of Haavard's University professors, the Norwegian company Metis gave them a contract to develop software based on Qt. Around this time, Trolltech hired Arnt Gulbrandsen, [*] who devised and implemented an ingenious documentation system as well ascontributing to Qt's code.

[*] Arnt left the company a few years ago to pursue his career in Germany.

On 20 May 1995, Qt 0.90 was uploaded to sunsite.unc.edu . Six days later, the release was announced on comp.os.linux.announce . This was Qt's first public release. Qt could be used for both Windows and Unix development, offering the same API on both platforms. Qt was available under two licenses fromday one: A commercial license was required for commercial development and a free software edition was available for open source development. The Metis contract kept Trolltech afloat, while for ten long months no one bought a commercial Qt license.

In March 1996, the European Space Agency became the second Qt customer, with a purchase of ten commercial licenses. With unwavering faith, Eirik and Haavard hired another developer. Qt 0.97 was released at the end of May, and on 24 September 1996, Qt 1.0 came out. By the end of the year, Qt had reached version 1.1; eight customers, each in a different country, had bought 18 licenses between them. This year also saw the founding of the KDE project, led by Matthias Ettrich.

Qt 1.2 was released in April 1997. Matthias Ettrich's decision to use Qt to build KDE helped Qt become the de-facto standard for C++ GUI development on Linux. Qt 1.3 was released in September 1997.

Matthias joined Trolltech in 1998, and the last major Qt 1 release, 1.40, was made in September of that year. Qt 2.0 was released in June 1999. Qt 2 hadmany major architectural changes and was a much stronger and more mature product than its predecessor. It also featured forty new classes and Unicode support. Qt 2 had a new open source license, the Q Public License (QPL), which complied to the Open Source Definition. In August 1999, Qt won the LinuxWorld award for best library/tool. Around this time, Trolltech Pty Ltd (Australia) was established.

Trolltech released Qt/Embedded in 2000. It was designed to run on Embedded Linux devices and provided is own window system as a lightweight replacement for X11. Both Qt/Embedded and Qt/X11 were now offered under the widely used GNU General Public License (GPL) as well as under commercial licenses. By the end of 2000, Trolltech had established Trolltech Inc. (USA) and had released the first version of Qtopia, an environment for handheld devices. Qt/Embedded won the LinuxWorld "Best Embedded Linux Solution"award in both 2001 and 2002.

Qt 3.0 was released in 2001. Qt was now available on Windows, Unix, Linux, Embedded Linux, and Mac OS X. Qt 3.0 provided 42 new classes and the code surpassed 500,000 lines. Qt 3.0 won the Software Development Times "Jolt Productivity Award" in 2002.

Trolltech's sales have doubled year on year since the company's birth. This success is a reflection both of the quality of Qt and of how enjoyable it is to use. For most of the company's existence, sales and marketing were handled by just a couple of people. Yet, in less than a decade , Qt has gone from being a "secret" product, known only to a select group of professionals, to having thousands of customers and tens of thousands of open source developers all around the world.

C++ GUI Programming with Qt 3
Authors: Blanchette J. Summerfield M.
Published year: 2006
Pages: 8-9/140
Buy this book on amazon.com >>

Similar books on Amazon