Book Image

Mastering Qt 5 - Second Edition

By : Guillaume Lazar, Robin Penea
Book Image

Mastering Qt 5 - Second Edition

By: Guillaume Lazar, Robin Penea

Overview of this book

Qt 5.11 is an app development framework that provides a great user experience and develops full capability applications with Qt Widgets, QML, and even Qt 3D. Whether you're building GUI prototypes or fully-fledged cross-platform GUI applications with a native look and feel, Mastering Qt 5 is your fastest, easiest, and most powerful solution. This book addresses various challenges and teaches you to successfully develop cross-platform applications using the Qt framework, with the help of well-organized projects. Working through this book, you will gain a better understanding of the Qt framework, as well as the tools required to resolve serious issues, such as linking, debugging, and multithreading. You'll start off your journey by discovering the new Qt 5.11 features, soon followed by exploring different platforms and learning to tame them. In addition to this, you'll interact with a gamepad using Qt Gamepad. Each chapter is a logical step for you to complete in order to master Qt. By the end of this book, you'll have created an application that has been tested and is ready to be shipped.
Table of Contents (16 chapters)

Playing low-latency sounds with QSoundEffect

The project application ch11-drum-machine displays four SoundEffectWidget widgets: kickWidget, snareWidget, hihatWidget, and crashWidget.

Each SoundEffectWidget widget displays a QLabel and a QPushButton. The label displays the sound name. If the button is clicked, a sound is played.

The Qt Multimedia module provides two main ways to play an audio file:

  • QMediaPlayer: This file can play songs, movies, and internet radio with various input formats
  • QSoundEffect: This file can play low-latency .wav files

This project example is a virtual drum machine, so we are using a QSoundEffect object. The first step to using a QSoundEffect is to update your .pro file as shown in the following code:

QT       += core gui multimedia 

Then you can initialize the sound. Here is an example of how to do this:

QUrl urlKick("qrc:/sounds/kick.wav&quot...