Author: Jasmin Blanchette & Mark Summerfield
Publisher: Prentice Hall, 2nd Edition, 2008
Aimed at: Qt beginners
Pros: A clearly-written and authoritative tome
Cons: Tendency to be repetitive
Reviewed by: Mike James
Qt is gaining in importance because, not only is it a good cross-platform GUI framework, but it is being used in mobile phone development environments as a way of providing a platform-independent user interface. This book is probably the standard introduction to the topic - it's big, it's clearly written and it's a hardback. It also should be authoritative as one of the authors works for Trolltech, the company behind Qt, and the book is "Officially approved by Trolltech". I suppose that makes it the official Qt book but this doesn't necessarily mean it's the best.
It starts off nice and gently with an introduction to getting started with Qt that almost anyone could follow. It helps if you have used another GUI framework like Swing or WPF, but the concepts are not complicated. The examples are all reasonably short and the format is to show the program and then discuss it in detail. This approach works well for the introductory material but it can become a little repetitive as the book moves on.
After an introduction to Qt the book moves on to consider the basic things you have to do to create a UI - dialog boxes, main windows, menus, custom widgets and so on.
Part II is titled "Intermediate Qt" and deals with only slightly more advanced ideas - layout, events, 2D graphics, drag-and-drop and so on. It then moves into less obviously UI areas - containers, input/output, database, multi-threading, networking, XML and implementing help. All of the topics are focused on either using Qt's classes or on how the topic relates to using the Qt classes.
The final section is, unsurprisingly called "Advanced Qt". It covers topics such as Internationalization, look and feel customisation, 3D graphics, plugins, scripting and platform specific features. In the main none of this stuff is particularly advanced - just less frequently used.
Overall this is a good book on Qt but it does have the feel of a college textbook. Whether this is a good or bad feature depends on your attitude. It does tend to be focused on the small architecture of Qt rather than providing you with an overview and there are still lots of topics left untouched. It doesn't take you off the beaten track - its more like a commentary on the documentation than an exploration.
The best way to sum up the book? It's more a staple than an exotic dish. If you want a Qt textbook then this is it.