Book description
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.
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
- Starting with Qt Quick and QML
- Checking your development environment
- Creating a Qt Quick project
- Preparing your Qt Quick gallery entry point
- Displaying albums with ListView
- Theming the application with a QML singleton
- Loading a database on mobile
- Creating a new album from a custom InputDialog
- Loading images with an ImageProvider
- Displaying thumbnails in a GridView
- Swiping through full resolution pictures
- Summary
-
Even Qt Deserves a Slice of Raspberry Pi
- Discovering Qt3D
- Configuring Qt for your Raspberry Pi
- Creating an entry point for your Qt3D code
- Setting up the scene
- Assembling your Qt3D entities
- Preparing the board game
- Crafting entities from the factory
- Building a snake engine in JavaScript
- Varying the HUD with QML states
- Profiling your QML application
- Summary
-
Third-Party Libraries Without a Headache
- Creating your Qt Designer plugin
- Configuring the project for Windows
- Configuring the project for Linux
- Configuring the project for Mac
- Implementing your OpenCV filters
- Designing the UI with FilterWidget
- Exposing your plugin to Qt Designer
- Using your Qt Designer plugin
- Building the image-filter application
- Summary
- Animations - Its Alive, Alive!
- Keeping Your Sanity with Multithreading
- Need IPC? Get Your Minions to Work
-
Having Fun with Serialization
- Architecting the drum machine project
- Creating a drum track
- Making your objects serializable with QVariant
- Serializing objects in JSON format
- Serializing objects in XML format
- Serializing objects in binary format
- Playing low latency sounds with QSoundEffect
- Triggering a QButton with your keyboard
- Bringing PlaybackWorker to life
- Accepting mouse drag and drop events
- Summary
- You Shall (Not) Pass with QTest
- All Packed and Ready to Deploy
-
Qt Hat Tips and Tricks
- Managing your workspace with sessions
- Searching with the Locator
- Increasing the compilation speed
- Examining the memory with Qt Creator
- Generating random numbers
- Silencing unused variable warnings
- Logging custom objects to QDebug
- Improving log messages
- Saving your logs to a file
- Generating a command-line interface
- Sending and receiving HTTP data
- Summary
- Qt 5 Projects
-
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
- 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
- Arranging 3D elements in a composition
- Defining feature scenarios
- Defining entities and their visual counterparts
- Creating the client application
- Going further
- Summary
-
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
-
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
- Building a Mobile Dashboard to Display Real-Time Sensor Data
- Running a Web Service and an HTML5 Dashboard
- Additional and Upcoming Qt Features
- Bibliography
Product information
- Title: End to End GUI Development with Qt5
- Author(s):
- Release date: November 2018
- Publisher(s): Packt Publishing
- ISBN: 9781789531909
You might also like
book
Beginning PyQt: A Hands-on Approach to GUI Programming
Learn GUI application development from the ground up, taking a practical approach by building simple projects …
video
Mastering Qt 5 GUI Programming
Qt is a powerful, cross-platform, graphics development framework. It provides a large set of consistent, standardized …
book
Cross-Platform Development with Qt 6 and Modern C++
Enhance your cross-platform programming abilities with the powerful features and capabilities of Qt 6 Key Features …
book
Beginning PyQt: A Hands-on Approach to GUI Programming with PyQt6
Learn GUI application development from the ground up by building simple projects that teach the fundamentals …