Reader small image

You're reading from  Qt 6 C++ GUI Programming Cookbook - Third Edition

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781805122630
Edition3rd Edition
Right arrow
Author (1)
Lee Zhi Eng
Lee Zhi Eng
author image
Lee Zhi Eng

Lee Zhi Eng is a self-taught programmer who worked as an artist and programmer at several game studios before becoming a part-time lecturer for 2 years at a university, teaching game development subjects related to Unity and Unreal Engine. He has not only taken part in various projects related to games, interactive apps, and virtual reality but has also participated in multiple projects that are more oriented toward software and system development. When he is not writing code, he enjoys traveling, photography, and exploring new technologies.
Read more about Lee Zhi Eng

Right arrow

Performance Optimization

Qt 6 is known for its optimized performance. However, performance issues may still occur if your code is poorly written. There are many ways we can identify these issues and fix them before releasing the software to our users.

In this chapter, we will cover the following recipes:

  • Optimizing forms and C++
  • Profiling and optimizing QML
  • Rendering and animation

Technical requirements

The technical requirements for this chapter include Qt 6.6.1 MinGW 64 bit, Qt Creator 12.0.2, and Windows 11. All the code used in this chapter can be downloaded from the following GitHub repository at https://github.com/PacktPublishing/QT6-C-GUI-Programming-Cookbook---Third-Edition-/tree/main/Chapter14.

Optimizing forms and C++

It’s very important to learn how to optimize your form-based Qt 6 applications that are built with C++. The best way to do that is to learn how to measure and compare the different methods that are used and decide which one works the best for you.

How to do it…

Let’s get started by following these steps:

  1. Let’s create a Qt Widgets Application project and open up mainwindow.cpp. After that, add the following headers to the top of the source code:
    #include <QPushButton>
    #include <QGridLayout>
    #include <QMessageBox>
    #include <QElapsedTimer>
    #include <QDebug>
  2. Create a QGridLayout object and set its parent to centralWidget:
    MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        QGridLayout *layout = new QGridLayout(ui->centralWidget);
  3. Create a QElapsedTimer object. We will be using this...

Profiling and optimizing QML

The QML engine in Qt 6 took advantage of hardware acceleration to make its rendering capability and performance superior to the old widgets user interface. However, this does not mean that you do not need to worry about optimization, because small performance issues may snowball into bigger problems over time and cause damage to your product’s reputation.

How to do it…

Follow these steps to start profiling and optimizing a QML application:

  1. Let’s create a Qt Quick Application project:
Figure 14.4 – Create a Qt Quick Application project

Figure 14.4 – Create a Qt Quick Application project

  1. Then, go to Analyze | QML Profiler and run the QML Profiler tool:
Figure 14.5 – Run the QML Profiler to check the QML performance

Figure 14.5 – Run the QML Profiler to check the QML performance

  1. Your Qt Quick project will then be run by the QML Profiler. The QML Profiler window will also appear under the code editor. Click the Stop button located at the top bar...

Rendering and animation

When it comes to an application that renders graphics and animation, good performance is critical. Users can easily notice performance issues when graphics are not animated smoothly on screen. In the following example, we will look at how we can further optimize a graphics-heavy Qt Quick application.

How to do it…

To learn how to render animation in QML, follow this example:

  1. Create a Qt Quick Application project. Then, right-click on the Resources icon under our project panel and add tux.png to our project’s resources:
Figure 14.12 – Include main.qml and tux.png into your project resources

Figure 14.12 – Include main.qml and tux.png into your project resources

  1. Open up main.qml and change the window size to 650 x 650. We will also add id to the window item and name it window:
    Window {
        id: window
        visible: true
        width: 650
        height: 650
  2. Add the following code inside...
lock icon
The rest of the chapter is locked
You have been reading a chapter from
Qt 6 C++ GUI Programming Cookbook - Third Edition
Published in: Apr 2024Publisher: PacktISBN-13: 9781805122630
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.
undefined
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 $15.99/month. Cancel anytime

Author (1)

author image
Lee Zhi Eng

Lee Zhi Eng is a self-taught programmer who worked as an artist and programmer at several game studios before becoming a part-time lecturer for 2 years at a university, teaching game development subjects related to Unity and Unreal Engine. He has not only taken part in various projects related to games, interactive apps, and virtual reality but has also participated in multiple projects that are more oriented toward software and system development. When he is not writing code, he enjoys traveling, photography, and exploring new technologies.
Read more about Lee Zhi Eng