Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Mastering Qt  5

You're reading from   Mastering Qt 5 Create stunning cross-platform applications using C++ with Qt Widgets and QML with Qt Quick

Arrow left icon
Product type Paperback
Published in Aug 2018
Publisher Packt
ISBN-13 9781788995399
Length 534 pages
Edition 2nd Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Guillaume Lazar Guillaume Lazar
Author Profile Icon Guillaume Lazar
Guillaume Lazar
Robin Penea Robin Penea
Author Profile Icon Robin Penea
Robin Penea
Arrow right icon
View More author details
Toc

Table of Contents (22) Chapters Close

Title Page
Copyright and Credits
Dedication
Packt Upsell
Contributors
Preface
1. Get Your Qt Feet Wet FREE CHAPTER 2. Discovering qmake Secrets 3. Dividing Your Project and Ruling Your Code 4. Conquering the Desktop UI 5. Dominating the Mobile UI 6. Even Qt Deserves a Slice of Raspberry Pi 7. Third-Party Libraries without a Headache 8. Animations - Its Alive, Alive! 9. Keeping Your Sanity with Multithreading 10. Need IPC? Get Your Minions to Work 11. Having Fun with Multimedia and Serialization 12. You Shall (Not) Pass with QTest 13. All Packed and Ready to Deploy 14. Qt Hat Tips and Tricks 1. Other Books You May Enjoy Index

Index

A

  • AlbumListWidget
    • used, for listing albums / Listing your albums with AlbumListWidget
  • albums
    • listing, with AlbumListWidget / Listing your albums with AlbumListWidget
    • displaying, with ListView / Displaying albums with ListView
  • AlbumWidget
    • used, for displaying selected album / Displaying the selected album with AlbumWidget
  • Android
    • application, packaging / Packaging for Android
  • Animation Framework
    • discovering / Discovering the Animation Framework
  • AppImage
    • reference / Packaging for Linux with AppImage
    • used, for application packaging with Linux / Packaging for Linux with AppImage
  • application
    • plugins, using / Using the plugins inside the application
    • interacting, with sockets / Interacting with sockets from the application
    • spying, on with QSignalSpy / Spying on your application with QSignalSpy
    • packaging, for Linux with distribution package / Packaging for Linux with a distribution package
    • packaging, for Linux with AppImage / Packaging for Linux with AppImage
    • packaging, for Mac OS X / Packaging for OS X
    • packaging, for Android / Packaging for Android
    • packaging, for iOS / Packaging for iOS
  • auto type
    • used, for simplifying / Simplifying with the auto type and a range-based for loop

B

  • binary format
    • about / Architecting the drum machine project
    • object, serializing / Serializing objects in binary format
  • board game
    • preparing / Preparing the board game
  • brew
    • reference / Configuring the project for Mac
  • built-in functions
    • reference / The .pro file in depth

C

  • code
    • protecting, with smart pointer / Protecting your code with a smart pointer
    • execution speed, benchmarking / Benchmarking your code
  • code responsibility
    • distributing / Distributing code responsibility
  • command-line interface (CLI)
    • about / Under the hood of qmake
    • generating / Generating a command-line interface
  • compilation speed
    • increasing / Increasing the compilation speed
  • completed task feature
    • implementing / Simplifying with the auto type and a range-based for loop
  • CpuWidget
    • implementing, with Qt Charts / CpuWidget using QCharts
  • Create/Read/Update/Delete (CRUD) / Storing your data in a database
  • cross-platform project
    • designing / Designing a cross-platform project
    • Windows implementation, adding / Adding the Windows implementation
    • Linux implementation, adding / Adding the Linux implementation
    • Mac OS implementation, adding / Adding the macOS implementation
  • custom InputDialog
    • new album, creating / Creating a new album from a custom InputDialog
  • custom objects
    • logging, to QDebug / Logging custom objects to QDebug
  • custom QWidget / Custom QWidget
  • custom signal
    • emitting, with lambdas / Emitting a custom signal using lambdas

D

  • D-Bus
    • about / Inter-process communication techniques
    • system bus / Inter-process communication techniques
    • session bus / Inter-process communication techniques
  • data
    • storing, in database / Storing your data in a database
  • database
    • data, storing / Storing your data in a database
    • loading, on mobile devices / Loading a database on mobile devices
  • data classes
    • defining / Defining data classes
  • datasets
    • used, for writing factorized tests / Writing factorized tests with datasets
  • Dependency Walker
    • reference / Packaging for Windows
  • design patterns, for cross-platform project
    • strategy pattern / Designing a cross-platform project
    • singleton pattern / Designing a cross-platform project
  • distribution package
    • used, for packaging application for Linux / Packaging for Linux with a distribution package
  • drum machine project
    • architecting / Architecting the drum machine project
  • drum track
    • creating / Creating a drum track

E

  • entities
    • crafting, from factory / Crafting entities from the factory
  • entity component system (ECS) / Discovering Qt3D
  • entry point
    • creating, for Qt3D code / Creating an entry point for your Qt3D code

F

  • factorized tests
    • writing, with datasets / Writing factorized tests with datasets
  • file
    • logs, saving / Saving your logs to a file
  • FilterWidget
    • used, for designing UI / Designing the UI with FilterWidget
  • foundations
    • laying down, with SDK / Laying down the foundations with an SDK
  • fpm (eFfing Package Management)
    • reference / Packaging for Linux with a distribution package
  • fractal
    • displaying, with MandelbrotWidget / Displaying the fractal with MandelbrotWidget
  • fragment / Assembling your Qt3D entities
  • full resolution images
    • navigating through / Swiping through full resolution images

G

  • Gallery app
    • composing / Composing your Gallery app
  • GridView
    • thumbnails, displaying / Displaying thumbnails in GridView
  • GUI
    • testing / Testing your GUI
  • GUI, linked to core shared library
    • creating / Creating a GUI linked to a core shared library

H

  • heads up display (HUD)
    • about / Creating an entry point for your Qt3D code
    • varying, with QML states / Varying the HUD with QML states
  • HTTP data
    • sending / Sending and receiving HTTP data
    • receiving / Sending and receiving HTTP data

I

  • image-filter application
    • building / Building the image-filter application
  • ImageProvider
    • used, for loading images / Loading images with an ImageProvider
  • images
    • loading, with ImageProvider / Loading images with an ImageProvider
  • Inter-Process Communication (IPC)
    • about / Inter-process communication techniques
    • techniques / Inter-process communication techniques
  • iOS
    • application, packaging / Packaging for iOS
  • IPC project
    • architecturing / Architecturing an IPC project

J

  • JavaScript
    • snake engine, building / Building a snake engine in JavaScript
  • Job class
    • defining, with QRunnable / Defining a Job class with QRunnable
  • JSON (JavaScript Object Notation) format
    • about / Architecting the drum machine project
    • objects, serializing / Serializing objects in JSON format

K

  • kit
    • compiler / Configuring Qt for your Raspberry Pi
    • debugger / Configuring Qt for your Raspberry Pi
    • Qt version / Configuring Qt for your Raspberry Pi
    • device / Configuring Qt for your Raspberry Pi

L

  • lambdas
    • used, for emitting custom signal / Emitting a custom signal using lambdas
  • Linux
    • project, configuring / Configuring the project for Linux
    • application, packaging with distribution package / Packaging for Linux with a distribution package
    • application, packaging with AppImage / Packaging for Linux with AppImage
  • linuxdeployqt
    • reference / Packaging for Linux with AppImage
  • Linux Kernel
    • reference / Adding the Linux implementation
  • ListView
    • used, for displaying albums / Displaying albums with ListView
  • Locator
    • used, for searching / Searching with the Locator
  • log messages
    • improving / Improving log messages
  • logs
    • saving, to file / Saving your logs to a file
  • low latency sounds
    • playing, with QSoundEffect / Playing low-latency sounds with QSoundEffect

M

  • Mac
    • project, configuring / Configuring the project for Mac
  • Mac OS X
    • application, packaging / Packaging for OS X
  • maintainable project
    • designing / Designing a maintainable project
    • sub-projects / Designing a maintainable project
  • MainWindow
    • structure / MainWindow structure
  • MandelbrotCalculator
    • QThreadPool, using / Using QThreadPool in MandelbrotCalculator
  • Mandelbrot project
    • architecting / Architecting the Mandelbrot project
    • MandelbrotWidget / Architecting the Mandelbrot project
    • MandelbrotCalculator / Architecting the Mandelbrot project
    • Job / Architecting the Mandelbrot project
  • MandelbrotWidget
    • used, for displaying fractal / Displaying the fractal with MandelbrotWidget
  • memory
    • examining, with Qt Creator / Examining memory with Qt Creator
  • memory consumption
    • displaying, with QCharts / Memory using Qcharts
  • mobile devices
    • database, loading / Loading a database on mobile devices
  • model
    • implementing / Implementing the model
    • List Model / Implementing the model
    • Tree Model / Implementing the model
    • Table Model / Implementing the model
  • Model View Controller (MVC) / Implementing the model
  • mouse drag events
    • accepting / Accepting mouse drag-and-drop events
  • mouse drop events
    • accepting / Accepting mouse drag-and-drop events
  • MXE
    • reference / Packaging your application

O

  • object
    • serializing, with QVariant / Making your objects serializable with QVariant
    • serializing, in JSON format / Serializing objects in JSON format
    • serializing, in XML format / Serializing objects in XML format
    • serializing, in binary format / Serializing objects in binary format
  • Object Oriented Paradigm (OOP) / Defining data classes
  • ObjectVariant
    • used, for object serialization / Making your objects serializable with QVariant
  • Open Source Computer Vision (OpenCV)
    • about / Creating your Qt Designer plugin
    • filters, implementing / Implementing your OpenCV filters

P

  • .pro file
    • exploring / The .pro file in depth
  • picture
    • displaying, with PictureWidget / Displaying a picture with PictureWidget
    • fading in / Fading in the picture
  • PictureDelegate
    • used, for enhancing thumbnails / Enhancing thumbnails with PictureDelegate
  • PictureWidget
    • used, for displaying picture / Displaying a picture with PictureWidget
  • PlaybackWorker
    • using / Bringing PlaybackWorker to life
  • plugins
    • exposing, to Qt Designer / Exposing your plugin to Qt Designer
    • creating / Creating your plugins
    • dynamic loading / Loading your plugins dynamically
    • automatic loading / Loading your plugins dynamically
    • using, inside application / Using the plugins inside the application
  • project
    • creating / Qt project basic structure
    • configuring, for Linux / Configuring the project for Linux
    • configuring, for Mac / Configuring the project for Mac
  • pseudo-random number generation (PRNG) / Generating random numbers

Q

  • QButton
    • triggering, with keyboard / Triggering a QButton with your keyboard
  • QCharts
    • used, for implementing CpuWidget / CpuWidget using QCharts
    • used, for displaying memory consumption / Memory using Qcharts
  • QDataStream
    • working with / Working with QDataStream and QTcpSocket
  • QDebug
    • custom objects, logging to / Logging custom objects to QDebug
  • QDialog
    • using / Using a QDialog
  • QEasingCurve class
    • reference / Fading in the picture
  • QLoggingCategory class
    • reference / Improving log messages
  • qmake / Under the hood of qmake, Beneath Q_OBJECT and signals/slots
  • QML
    • starting with / Starting with Qt Quick and QML
    • working with / Starting with Qt Quick and QML
    • styling, with Qt Quick Controls 2 (QQC2) / Styling QML with Qt Quick Controls 2
  • QML application
    • theming, with QML singleton / Theming the application with a QML singleton
    • profiling / Profiling your QML application
  • QML singleton
    • used, for theming QML application / Theming the application with a QML singleton
    • reference / Theming the application with a QML singleton
  • QML states
    • used, for varying HUD / Varying the HUD with QML states
  • QPainter
    • reference / Enhancing thumbnails with PictureDelegate
  • QRunnable
    • used, for defining Job class / Defining a Job class with QRunnable
  • QShortcut class
    • reference / Triggering a QButton with your keyboard
  • QSignalSpy
    • used, for spying on application / Spying on your application with QSignalSpy
  • QSoundEffect
    • used, for playing low latency sounds / Playing low-latency sounds with QSoundEffect
  • QString documentation
    • reference / Simplifying with the auto type and a range-based for loop
  • Qt
    • configuring, for Raspberry Pi / Configuring Qt for your Raspberry Pi
  • Qt3D
    • discovering / Discovering Qt3D
  • Qt3D code
    • entry point, creating / Creating an entry point for your Qt3D code
  • Qt3D entities
    • assembling / Assembling your Qt3D entities
  • Qt3d lights
    • reference / Creating an entry point for your Qt3D code
  • Qt application
    • development environment, checking / Checking your development environment
  • Qt Charts
    • exploring / Exploring Qt Charts
    • reference / Exploring Qt Charts
  • QTcpServer
    • building / Building your own QTcpServer
  • QTcpSocket
    • working with / Working with QDataStream and QTcpSocket
  • Qt Creator
    • about / Qt project basic structure
    • used, for examining memory / Examining memory with Qt Creator
  • Qt Designer
    • about / Qt Designer interface
    • interface / Qt Designer interface
    • plugin, exposing / Exposing your plugin to Qt Designer
  • Qt Designer plugin
    • creating / Creating your Qt Designer plugin
    • using / Using your Qt Designer plugin
  • Qt framework
    • signals / Signals and slots
    • slot / Signals and slots
    • connect function / Signals and slots
  • Qt Gamepad
    • playing with / Playing with Qt Gamepad
  • QThread
    • discovering / Discovering QThread
  • QThreadPool
    • using, in MandelbrotCalculator / Using QThreadPool in MandelbrotCalculator
  • Qt multi-threading technologies
    • exploring / Flying over Qt multithreading technologies
  • Qt Plugin system
    • used, for creating SDK / Creating an SDK using the Qt Plugin system
  • Qt project
    • basic structure / Qt project basic structure
  • Qt Quick Controls 2 (QQC2)
    • used, for styling QML / Styling QML with Qt Quick Controls 2
    • controls / Styling QML with Qt Quick Controls 2
    • reference / Styling QML with Qt Quick Controls 2
  • Qt Quick Controls application / Creating a Qt Quick project
  • Qt Quick gallery
    • entry point, preparing / Preparing your Qt Quick gallery entry point
  • Qt Quick project
    • starting with / Starting with Qt Quick and QML
    • working with / Starting with Qt Quick and QML
    • creating / Creating a Qt Quick project
  • Qt resource file / Listing your albums with AlbumListWidget
  • Qt Test
    • discovering / Discovering Qt Test
  • QVariant
    • used, for object serialization / Making your objects serializable with QVariant
    • supported types, references / Making your objects serializable with QVariant
  • Q_OBJECT / Beneath Q_OBJECT and signals/slots

R

  • random numbers
    • generating / Generating random numbers
  • range-based for loop
    • used, for simplifying / Simplifying with the auto type and a range-based for loop
  • Raspberry Pi
    • Qt, configuring / Configuring Qt for your Raspberry Pi
    • for QT, reference / Configuring Qt for your Raspberry Pi
  • remote procedure calling (RPC) / Inter-process communication techniques
  • Run-time type information(RTTI) / Beneath Q_OBJECT and signals/slots

S

  • scene
    • setting up / Setting up the scene
  • SDK
    • preparing / Creating an SDK using the Qt Plugin system
    • used, for laying down foundation / Laying down the foundations with an SDK
  • selected album
    • displaying, with AlbumWidget / Displaying the selected album with AlbumWidget
  • sessions
    • used, for managing workspace / Managing your workspace with sessions
  • shared memory / Inter-process communication techniques
  • signals / Signals and slots, Beneath Q_OBJECT and signals/slots
  • singleton
    • SysInfo, transforming / Transforming SysInfo into a singleton
  • slots / Signals and slots, Beneath Q_OBJECT and signals/slots
  • smart pointer
    • used, for protecting code / Protecting your code with a smart pointer
  • snake engine
    • building, in JavaScript / Building a snake engine in JavaScript
  • sockets
    • interacting, in worker / Interacting with sockets in the worker
    • interacting, from application / Interacting with sockets from the application
  • software development kit (SDK)
    • creating, with Qt Plugin system / Creating an SDK using the Qt Plugin system
  • standalone application
    • packaging / Packaging your application
    • packaging, for Windows / Packaging for Windows
  • standard C++ documentation
    • reference / Adding a task
  • sub-projects
    • gallery-core / Designing a maintainable project
    • gallery-desktop / Designing a maintainable project
    • gallery-mobile / Designing a maintainable project
  • SysInfo
    • transforming, in singleton / Transforming SysInfo into a singleton

T

  • task
    • adding / Adding a task
  • Technology Preview (TP) / Playing with Qt Gamepad
  • tests
    • executing / Executing your tests
  • ThumbnailProxyMode
    • creating / Creating ThumbnailProxyModel
  • ThumbnailProxyModel
    • creating / Creating ThumbnailProxyModel
  • thumbnails
    • enhancing, with PictureDelegate / Enhancing thumbnails with PictureDelegate
    • displaying, in GridView / Displaying thumbnails in GridView
    • animating / Making your thumbnails jump
    • flashing, in sequence / Flashing the thumbnail in a sequence
  • type information(RTTI) / Loading your plugins dynamically

U

  • UI
    • designing, with FilterWidget / Designing the UI with FilterWidget
  • unique_ptr pointer
    • reference / Protecting your code with a smart pointer
  • unused variable warnings
    • silencing / Silencing unused variable warnings
  • User Interface Compiler / Exposing your plugin to Qt Designer

V

  • vertex shader / Assembling your Qt3D entities

W

  • What You See Is What You Get (WYSIWYG) / Qt project basic structure
  • Windows
    • project, configuring / Configuring the project for Windows
    • standalone application, packaging / Packaging for Windows
  • Windows API
    • reference / Adding the Windows implementation
  • worker
    • interacting, with sockets / Interacting with sockets in the worker
  • workspace
    • managing, with sessions / Managing your workspace with sessions

X

  • XML (eXtensible Markup Language) format
    • about / Architecting the drum machine project
    • object, serializing / Serializing objects in XML format
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at £13.99/month. Cancel anytime
Visually different images