Trolltech was very kind to send us over a copy of the recently released “C++ GUI Programming with Qt 3” book, part of “Bruce Perens’ Open Source Series”. The book weighs in at about 400 pages and comes with a CD-ROM loaded with software not found elsewhere freely.The book is written by Trolltech employees who are also responsible for the excellent online Qt documentation. There is a foreword from Matthias Ettrich, the KDE founder, and a brief Qt history.
This book is not for programming newbies. Some knowledge of C++ is required in order to understand the book. The first chapter is very simple and most people will be able to follow it very easily, but after that point, previous programming experience would be required.
The book is very rich in delivering the right information: it discusses UI creation (including custom widgets) using code (as opposed to just using Qt Designer), layout management, event processing, graphics and OpenGL, D’n’D and I/O. There are also chapters about Qt’s API for networking, databases, XML (SAX and DOM) and internationalization. Of special interest (advanced) are the multithreading and the platform-specific features discussed at the end of book. The appendices include installation guide for Unix, Windows and Mac, and the Qt class hierarchy map.
The CD-ROM includes Borland C++ 5.0 Non-Commercial edition for use with the 3.2 Qt version for Windows (also non-commercial). Unix and OSX versions are also included accompanied by SQLite and the book’s code samples. The fact that the book includes the Qt NC 3.2 for Windows (not found elsewhere for download) makes it worth its $32 US cover price even more.
The book reads like raw documentation, there is no “personal” tone anywhere aside from the first few pages. The fact that the book was written by the documentation guys at Trolltech probably has something to do with this. There is a lot of code throughout the book, however, the explanation of the code is not always very detailed. I believe that existing Qt developers or experienced C++ programmers will love the book, while new Qt developers will have a bit of hard time following it in some places.
I believe the book should have had two more chapters though: one for Qt/Embedded & Qtopia and one specific to KDE. Trolltech is going strong with Qtopia on phones and PDAs recently, so at least one chapter about it should have being there. Also, a primer for using Qt with KDE libraries would also be very welcome. While KDE libraries are not part of Qt, it’s a fact that most Qt programmers in the world are also KDE programmers who would appreciate some “all around” information regarding the relationship of the two APIs.
Generally speaking, this is the only book about Qt that discusses a recent version of Qt, so programmers who want to really learn Qt should definitely take a look at this offering. It not only explains how to program for Qt, but also, in some cases, why the API is the way it is. If you are looking into coding a multi-platform application that isn’t Java-based, this is the book you need.
Buy “C++ GUI Programming with Qt 3“