Advanced Qt Programming

by Mark Summerfield

blog review

Years and years ago, back when Qt4 was new and the KDE 4 desktop was redefining how Linux users interfaced with their PCs, I bought this book so I could learn how about C++ and what surely must be its most popular GUI framework. Qt4 is history now and Qt5 is the latest, greatest library set available, so why bring this book up now?

As it happens, this is still the best book on the subject of intermediate C++ programming and advanced Qt development. If you don't know what that means, then this book isn't where you want to start; you should start with some lessons on cplusplus.com or similar, and work your way through this book once you've written a few useful custom utilities. If, however, you've just been looking for a book about GUI programming in C++ and you've been trying to choose a library, then this is where you should start. Conveniently, all of the sample code of the book has been ported to Qt5, so most of the book applies directly to the latest version of Qt, as long as you can "read around" some differences in class names or implementation.

One of the most significant aspects of this book is the way it explains Qt. Never does this book just tell you to take code on faith. It explains why the code is written in a specific way, and how your Qt code relates to the underlying C++ libraries that Qt is built upon, but it does all of that in a way that is easy to understand to even an intermediate programmer.

One of the reasons Qt is important is that it's cross-platform. Whether or not you care today about delivering your application to different operating systems, you never know when you may start caring. It only takes one total rewrite of your entire code base to commit for the rest of your life to plan for cross platform, and it only takes a brief encounter with other frameworks to learn that not all are created equal. Qt takes these things seriously, and when you code with Qt, you code for everybody. It's not a silver bullet, of course; there's still going to be platform-specific adjustments, but it's a lot better to adjust 25% of your code than 100%.

In other words, plan for Qt. And learn Qt from Advanced Qt Programming.

Previous Post Next Post