
End to End GUI Development with Qt5
Develop cross-platform applications with modern UIs using the powerful Qt framework
- 1,150 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
End to End GUI Development with Qt5
Develop cross-platform applications with modern UIs using the powerful Qt framework
About this book
Learn the complete Qt ecosystem and its tools and build UIs for mobile and desktop applications
Key Features
- Unleash the power of the latest Qt 5.9 with C++14
- Easily compile, run, and debug your applications from the powerful Qt Creator IDE
- Build multi-platform projects that target Android, iOS, Windows, MacOS, Linux, and more
Book Description
Qt 5.9 is an application development framework that provides a great user experience and develops full-capability applications with Qt Widgets, QML, and even Qt 3D. This learning path demonstrates the power and flexibility of the Qt framework for desktop application development and shows how you can write an application once and deploy it to multiple operating systems. It will address all the challenges while developing cross-platform applications with the Qt framework.
This course will give you a better understanding of the Qt framework and tools to resolve serious issues such as linking, debugging, and multithreading. It will also upskill you by explaining how to create a to-do-style app and taking you through all the stages in building a successful project. You will build a suite of apps; while developing these apps, you'll deepen your knowledge of Qt Quick's layout systems, and see Qt 3D and widgets in action. The next project will be in the industrial and agricultural sectors: making sense of sensor data via a monitoring system. Your apps should run seamlessly across devices and operating systems such as Android, iOS, Windows, or Mac, and be cost-effective by integrating with existing web technologies. You take the role of lead developer and prototype a 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
- Install and configure the Qt Framework and Qt Creator IDE
- Implement a rich user interface with QML
- Learn the fundamentals of QtTest and how to integrate unit testing
- Create stunning UIs with Qt Widget and Qt Quick
- Develop powerful, cross-platform applications with the Qt framework
- Design GUIs with Qt Designer and build a library in it for UI previews
- Build a desktop UI with widgets and Designer
- Get familiar with multimedia components to handle visual input and output
Who this book is for
This book will appeal to developers and programmers who would like to build GUI-based applications. Knowledge of C++ is necessary and a basic familiarity with Qt would be helpful.
Tools to learn more effectively

Saving Books

Keyword Search

Annotating Text

Listen to it instead
Information
Persistence
- SQLite
- Primary keys
- Creating clients
- Finding clients
- Editing clients
- Deleting clients
SQLite
QT += sql #ifndef IDATABASECONTROLLER_H #define IDATABASECONTROLLER_H #include <QJsonArray> #include <QJsonObject> #include <QList> #include <QObject> #include <QString> #include <cm-lib_global.h> namespace cm { namespace controllers { class CMLIBSHARED_EXPORT IDatabaseController : public QObject { Q_OBJECT public: IDatabaseController(QObject* parent) : QObject(parent){} virtual ~IDatabaseController(){} virtual bool createRow(const QString& tableName, const QString& id,
const QJsonObject& jsonObject) const = 0; virtual bool deleteRow(const QString& tableName, const QString& id)
const = 0; virtual QJsonArray find(const QString& tableName, const QString&
searchText) const = 0; virtual QJsonObject readRow(const QString& tableName, const
QString& id) const = 0; virtual bool updateRow(const QString& tableName, const QString& id,
const QJsonObject& jsonObject) const = 0; }; }} #endif
#ifndef DATABASECONTROLLER_H #define DATABASECONTROLLER_H #include <QObject> #include <QScopedPointer> #include <controllers/i-database-controller.h> #include <cm-lib_global.h> namespace cm { namespace controllers { class CMLIBSHARED_EXPORT DatabaseController : public IDatabaseController { Q_OBJECT public: explicit DatabaseController(QObject* parent = nullptr); ~DatabaseController(); bool createRow(const QString& tableName, const QString& id, const
QJsonObject& jsonObject) const override; bool deleteRow(const QString& tableName, const QString& id) const
override; QJsonArray find(const QString& tableName, const QString&
searchText) const override; QJsonObject readRow(const QString& tableName, const QString& id)
const override; bool updateRow(...
Table of contents
- Title Page - Courses
- Copyright and Credits - Courses
- Packt Upsell - Courses
- Preface
- Learn Qt 5
- Hello Qt
- Project Structure
- User Interface
- Style
- Data
- Unit Testing
- Persistence
- Web Requests
- Wrapping Up
- Mastering Qt 5
- Discovering QMake Secrets
- Dividing Your Project and Ruling Your Code
- Conquering the Desktop UI
- Dominating the Mobile UI
- Even Qt Deserves a Slice of Raspberry Pi
- Third-Party Libraries Without a Headache
- Animations - Its Alive, Alive!
- Keeping Your Sanity with Multithreading
- Need IPC? Get Your Minions to Work
- Having Fun with Serialization
- You Shall (Not) Pass with QTest
- All Packed and Ready to Deploy
- Qt Hat Tips and Tricks
- Qt 5 Projects
- Writing Acceptance Tests and Building a Visual Prototype
- Defining a Solid and Testable App Core
- Wiring User Interaction and Delivering the Final App
- Learning About Laying Out Components by Making a Page Layout Tool
- Creating a Scene Composer to Explore 3D Capabilities
- Building an Entity-Aware Text Editor for Writing Dialogue
- Sending Sensor Readings to a Device with a Non-UI App
- Building a Mobile Dashboard to Display Real-Time Sensor Data
- Running a Web Service and an HTML5 Dashboard
- Additional and Upcoming Qt Features
- Bibliography
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app