Book Image

Qt 5 Projects

By : Marco Piccolino
Book Image

Qt 5 Projects

By: Marco Piccolino

Overview of this book

<p>Qt is a professional cross-platform application framework used across industries like automotive, medical, infotainment, wearables, and more. In this book you’ll initially create a to-do style app by going via all stages for building a successful project. You'll learn basics of Qt's C++ and QML APIs, test-driven development with Qt Test, application architecture, and UIs with Qt Quick &amp; Quick Controls 2.</p> <p>Next, you’ll help two startups build their products. The first startup, Cute Comics, wants to help independent comic creators with a suite of apps that let them experiment with comic pages, image composition, comic dialogues, and scene descriptions.&nbsp; While developing these apps you’ll deepen your knowledge of Qt Quick's layout systems, and see Qt 3D and Widgets in action.</p> <p>The second startup, Cute Measures, wants to create apps for industrial and agricultural sectors, to make sense of sensor data via a monitoring system. The apps should run seamlessly across devices and operating systems like Android, iOS, Windows, or Mac, and be cost-effective by integrating with existing web technologies. You take the role of lead developer and prototype the monitoring system. In doing so you’ll get to know Qt's Bluetooth and HTTP APIs, as well as the Charts and Web Engine UI modules.</p> <p>These projects will help you gain a holistic view of the Qt framework.</p>
Table of Contents (16 chapters)
Title Page
PacktPub.com
Contributors
Preface
Index

Implementing the characters entity


By looking at our first use case (Add character to characters list), we will note that an entity representing a list of characters is involved. Our characters entity needs a few methods: at least one to add an item to the list, and one to retrieve the items in the list. We will thus keep things simple and implement the entity as a list, without additional members. The list is quite simple, requiring only a character's name to be used for the use cases here.

Introducing QAbstractItemModel and QAbstractListModel

The first option would be to implement the list with a simple QList of QStrings or QVariants, as we did in Chapter 2, Defining a Solid and Testable App Core. However, Qt provides more powerful data structures that make it easier to implement the model/view paradigm. All these models derive from QAbstractItemModel, provide automatic means of updating the views that rely on them, and can conveniently represent relatively complex data structures, such...