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 & Quick Controls 2.
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. While developing these apps you’ll deepen your knowledge of Qt Quick's layout systems, and see Qt 3D and Widgets in action.
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.
These projects will help you gain a holistic view of the Qt framework.
What You Will Learn
* Learn the basics of modern Qt application development
* Develop solid and maintainable applications with BDD, TDD, and Qt Test
* Master the latest UI technologies and know when to use them: Qt Quick, Controls 2, Qt 3D and Charts
* Build a desktop UI with Widgets and the Designer
* Translate your user interfaces with QTranslator and Linguist
* Get familiar with multimedia components to handle visual input and output
* Explore data manipulation and transfer: the model/view framework, JSON, Bluetooth, and network I/O
* Take advantage of existing web technologies and UI components with WebEngine
Author(s): Marco Piccolino
Edition: 1
Publisher: Packt Publishing
Year: 2018
Language: English
Commentary: True PDF
Pages: 360
City: Birmingham
Tags: Programming;Qt5;Qt 5;C++;CPP;GUI;User Interface
1: Writing Acceptance Tests and Building a Visual Prototype
Don't come to me with an idea, come to me with a plan
The problem — what's in my fridge?
Writing features and scenarios
Implementing scenarios as acceptance tests
Building a visual prototype
Taking it further
Summary
2: Defining a Solid and Testable App Core
Implementing the first usecase
Making the first usecase test pass
Adding a textual user interface
About unit testing
Summary
3: Wiring User Interaction and Delivering the Final App
Completing the app's core functionality
Connecting visual input/output and usecases
Deploying the app
Summary
4: Learning About Laying Out Components by Making a Page Layout Tool
A tool to prototype page layouts quickly
Initial setup
Adding a panel to the page
Removing a panel from the page
Taking a picture and loading it into a panel
Loading an existing picture into a panel
Summary
5: Creating a Scene Composer to Explore 3D Capabilities
Arranging 3D elements in a composition
Defining feature scenarios
Defining entities and their visual counterparts
Creating the client application
Going further
Summary
6: Building an Entity-Aware Text Editor for Writing Dialogue
Writing comic scripts efficiently
Defining use cases
Setting up the project
Prototyping the UI
Implementing the characters entity
Adding a character to the characters model
Inserting a character's name into the dialogue script
Auto-highlighting a character name
Saving the comic script
Exporting the comic script to PDF
Styling the UI
Summary
7: Sending Sensor Readings to a Device with a Non-UI App
Outline
Setting up the project
Publishing sensor readings
Defining the sensor entity
Implementing the Broadcaster entity
Adding the broadcaster Bluetooth channel
Gluing components into the CM Broadcast console app
Summary
8: Building a Mobile Dashboard to Display Real-Time Sensor Data
Overview
Project setup
Implementing the Bluetooth Receiver channel
Implementing the readings chart
Wiring the receiverChannel to the chart
Adding internationalization support
Summary
9: Running a Web Service and an HTML5 Dashboard
Overview
Creating a BroadcasterChannel based on HTTP
Making an HTTP ReceiverChannel implementation
Implementing an HTML5 UI
Summary
10: Additional and Upcoming Qt Features
Additional Qt features in 5.9 LTS
New and upcoming Qt features