Qt—which lives in desktop applications, embedded systems, and mobile devices in consumer electronics, vehicles, medical devices, and industrial automation systems to support cross-platform applications and graphical user interfaces—has an upgrade.
Figure 1 A pre-release snapshot of Qt 6.0 shows binaries for desktop platforms. Source: The Qt Company
Qt 6.0 claims to provide a one-stop-shop for software design and development based on three pillars. Start with productivity-enhancing tools and APIs that aim to close the gap between the increasing amount of software requirements rising with the exponential growth of the IoT and the stagnant growth of available software developers.
Qt’s CTO Lars Knoll said that Qt developers will be able to launch Qt applications on any graphics hardware with maximum performance without any runtime overhead. The upgraded rendering hardware interface (RHI) and Qt Quick 3D are the most prominent improvements from a human-machine-interface (HMI) creation perspective.
Figure 2 While Qt 5 relied on OpenGL for hardware-accelerated graphics, with Qt 6, all 3D graphics in Qt Quick are now built on top of a new abstraction layer for 3D graphics called RHI. Source: The Qt Company
The RHI allows the running of Qt on any hardware acceleration platform. That includes OpenGL and Vulkan on desktop and Metal and Direct3D for mobile platforms. Next, Qt Quick 3D allows for interaction and merging of 2D and 3D content, as modern applications need to utilize both concepts for appealing and modern-looking user interfaces.
Enhanced user experience
The sixth major version of Qt takes a more holistic approach to software development while offering a new graphics architecture and programming language improvements. Qt has unified the tools and has made their use easier for cross-functional teams building 2D and 3D applications.
For instance, Qt Design Studio 2.0 enables designers to create compelling experiences for 2D and 3D user interfaces. “We have also enhanced Qt’s support for MCUs in Qt Design Studio,” Knoll said. “If the user creates a Qt for MCUs, Qt features that are not available for MCUs will also be disabled in the UI.”
Qt 6.0 allows the same code to be used on any hardware of any size—from MCUs to supercomputers—on any operating system and even on bare metal without an operating system. “It improves coding efficiency to a level that even ultra-low-cost hardware can support smartphone-like user interfaces,” said Knoll.
He added that Qt 6.0 has been putting a lot of effort into coding efficiency and making developers feel comfortable using Qt as much as possible. For instance, Qt 6.0 is based upon C++17, bringing lots of innovations and programming improvements to any C++ developer.
Figure 3 With 6.0, Qt Quick now supports native styling on both macOS and Windows. Source: The Qt Company
Knoll, also the chief maintainer of the Qt Project, pointed out that tools generally serve a dedicated purpose, “However, what’s important is how they interact with each other.” Qt 6.0 aims to allow designers to implement various dynamic and interactive behaviors—such as navigation flows, UI states, transitions, and animations—and reduce the amount of required specifications and implementation effort.
Majeed Ahmad, Editor-in-Chief of EDN, has covered the electronics design industry for more than two decades.