The Qt 6 QML Book


One question that I often think about is: how to do you learn best? I come from a time where you read your BASIC reference manual until it fell apart. Perhaps you picked up another little nugget of knowledge in each iteration. But things have progressed. There are videos, books, online teaching materials, code challenges, and much much more. What brought me to Qt back in the late '90s was the quality of the reference documentation (and that it ran on a 64-bit architecture).

A few years ago, a colleague of mine, Jürgen, and I faced the challenge of building large-scale infotainment systems during our time at Pelagicore. That led to the creation of the QmlBook, an online book focusing on Qt Quick and QML for Qt 5. This work was supported in various stages by Pelagicore, Felgo, and The Qt Company. The project was started in the early days of Qt 5 and has been updated and extended at various times.

The New Qt 6 QML Book 

Qt 6 QML Book

With Qt 6 maturing, we've come to a point where we want to create a similar resource for Qt 6: The Qt 6 Book - A book about QML. The Qt Company kindly offered to help support upgrading the text, and Cyril joined Jürgen and me in this task.

The quality that sets a book apart from reference documentation is that it guides you as a reader through the topic. When writing the Qt 6 Book, we've focused on three stages. We start by learning to crawl. Here, Qt, QML, Qt Quick, and the world around is introduced. We start with installation and 'hello world' and end with a crash course in the core concepts of QML and Qt Quick.

Once you can crawl, it is time to learn and walk. Then you can start to wander around and try things that you fancy. During this section, we provide chapters demonstrating how to use the various concepts such as Model View, Qt Quick Controls, Shader and Particle Effects, Multimedia, Networking, Storage, and so on. Each chapter demonstrates the possibilities (breadth) of each concept and how to control the details (depth).

After you learn to walk, it is time to learn to run. Here, we demonstrate more complex concepts such as Dynamic QML, Javascript (as opposed to QML), and how to mix QML with C++ and Python. These chapters are similar to the walking chapters but cover more complex topics and expect a more experienced reader willing to explore more independently.

Current Status 

So, where are we today? We've spent a few months updating examples for Qt 6, getting reviews from various people involved in the development of Qt, and improving the text. Along with the Qt 6.2 release, we released a preview version of the book. Since then, we've focused on the technical contents - ensuring that we follow modern Qt coding practices, cleaning out all lint warnings from the examples, converting projects to CMake, and so on. We are now moving into the stage where we will add new content such as Qt Quick 3D, Qt for MCUs, Qt Design Studio.

This is where you come into the picture. We need you - help us with your suggestions! Let us know what you want us to cover, report issues, contribute patches. All feedback is welcome. But also make sure to spread the word and help people learn Qt. There is no greater reward to a writer than having someone read your text and learn new skills from it.

Learn more about it at The Qt World Summit

If you want to learn more or discuss directly with me, please attend my slot at the Qt World Summit 2021 on Wednesday, November 3rd. You can find my talk 'The QmlBook – Learning by reading' in Track 2: User Interface. And don't forget to check out the book!

Blog Topics: