Qt has always been renowned for its excellent developer documentation that includes API reference information as well as tutorials and examples. But some people prefer documentation in book format, whether it be an e-book or a traditional printed paper volume.
Books offer a different style of presentation from formal documentation that can be better suited to learning, and they offer portability with the convenience of not needing to be at a computer to read. Whether you are on a long airplane flight or at the summer cottage, a book can be an opportunity to relax and learn at the same time.
Students in ICS' Qt training classes and other events often ask for recommendations on books about Qt. In this blog I share a few of my favorites. While some of these are not recent publications, they are still relevant. (Disclaimer: these are my own personal opinions and may be biased as I know some of the authors.)
C++ GUI Programming with Qt 4, by Jasmin Blanchette and Mark Summerfield, ISBN 0-13-187249-2, 2006
This was the official and definitive guide to Qt 4, written by Trolltech's documentation manager and an independent Qt consultant. Its 21 chapters and 537 pages cover almost every aspect of Qt programming and the book includes a CD-ROM of software examples and a copy of Qt. It is an update to the earlier C++ GUI Programming with Qt 3, by the same authors.
Since the release of Qt 5 in 2012, the book is now date. But it is still available and still useful. The book predates QML, and is aimed primarily at desktop development (with some coverage of embedded, at that time a separate Qt product known as Qtopia) but the examples will, in most cases, build on Qt 5 without too many changes. I ported most of them myself in a few hours one day.
Unfortunately it appears that a Qt 5 version is not in the works.
Rapid GUI Programming with Python and Qt, by Mark Summerfield, ISBN 978-0-13-235418-9, 2008
This book covers developing with Qt in the Python language, using the PyQt language bindings. Python is one of, if not the most popular interpreted high-level programming languages for general-purpose programming. I believe over the next few years we will increasingly see some Qt-based applications developed in Python rather than C++, even on embedded systems.
The focus of the book is Qt, but the first three chapters cover the Python programming language, including object-oriented programming using classes and modules, so the book is suitable for readers with no prior Python experience.
Written 10 years ago, it covers Qt 4 rather than Qt 5. Despite that, I feel it is still the best book available on programming Qt with Python, and most of the material is still applicable to Qt 5.
Practical Qt - Real World Solutions for Real World Problems, by Matthias Kalle Dalheimer and Jesper Pederson etc al, ISBN 3-89864-280-1, 2004
Written by the staff of Qt consulting company The KDAB Group, this is a cookbook of useful tips and tricks for using Qt. Most of the tips fit in one to four pages of text, and include source code. Written in 2004, it is aimed at Qt 4 and desktop widgets development, but much of it should still be relevant for Qt 5.
An Introduction To Design Patterns in C++ with Qt 4, Alan Ezust and Paul Ezust, ISBN 0-13-187905-7, 2007
Written by a father-and-son team (Alan Ezust is a former ICS employee), this extensive book (624 pages) uses Qt as a platform to teach C++, object-oriented programming, and design patterns. It has been used as a university-level textbook but is also suitable for students or professional developers learning on their own.
Written for Qt 4, much of the material is still relevant although the C++ language has also evolved since the time it was written. A PDF downloadable version (http://ptgmedia.pearsoncmg.com/images/9780131879058/downloads/013187905…) is freely available from the publisher, and ICS hosts an HTML version (https://www.ics.com/designpatterns/book/index.html) that has had some updates made.
Advanced Qt Programming, Mark Summerfield, ISBN 978-0-321-63590-7, 2001
Another book by Mark Summerfield, this one covers topics that were considered too advanced for C++ GUI Programming with Qt 4. Topics include hybrid desktop/Internet applications with WebKit, model/view delegates, views and models, threading, animation and state machines, and more. It is written for Qt 4, but much if it is still applicable to Qt 5.
Qt for Symbian, Frank H.P. Fitzek, Tommi Mikkonen, and Tony Torp, ISBN 978-0-470-75010-0, 2010
I've included this book not because it's a favorite, but more for caveat emptor. This book covers Qt programming on Symbian, Nokia's mobile phone platform that supported Qt. Porting Qt to Symbian was one of the major efforts undertaken when Nokia acquired Qt from Trolltech. With the decision by Nokia in 2011 to focus on the Windows Phone platform (and later acquisition of much of Nokia by Microsoft), the Symbian platform become obsolete. I only mention this book because it is one example of a Qt book that's entirely obsolete. Check carefully when buying Qt books, as some, like this one, are of no use for developing with Qt on modern platforms.
Qt Cadaques, Jürgen Bocklage-Ryannel and Johan Thelin
You've probably noticed that most of the preceding books are about Qt 4. This one covers Qt 5, specifically those areas of Qt 5 that are related to QML. Also unlike the other books, this one is available only online and not in printed form. It is also freely available, distributed under a Creative Commons license. You can access the content in various forms: HTML, PDF, ePub or from within the Qt Help viewer.
This book is still a work in progress, but is more up-to-date that the other printed Qt books and I would recommend it for anyone who wants to learn Qt from documentation in a book format. Written in English, translations have been started for Italian, German, and Portuguese. Currently the PDF version runs over 250 pages.
So, I said these were my personal picks for Qt books. There are many others I'd add to this list. But these, minus Qt for Symbian, are a great place to start. One tip: most technical books have errors that creep in and are not found until after they are published. Typically the publisher makes available an errata of corrections on their website so be sure to check for an errata or other updates for any Qt books that you read and save yourself some possible grief. (I usually print the errata and tuck a hardcopy into the book itself.)
Looking for more information on Qt? Check out our other Qt/QML blogs here.