What's New in 2.7

Qt Quick Ultralite maintains source compatibility between minor releases. However, some changes may require you to adapt the application code accordingly. The following sections highlight such changes:

Important changes

  • Added support for Infineon TRAVEO™ T2G CYT4EN (Technology Preview).
  • Deprecated the Application QML type and added the ApplicationScreens QML type as a replacement.

New features

  • Added the Studio.Components module and the ArcItem studio component.
  • Refactored StaticText implementation to make its layout similar to Text, irrespective of the font engine in use. It also ensures that multi-line StaticText items align better when scaled, and their implicit horizontal alignment is correct.
  • Updates to demos and examples:
    • Updated the automotive demo to control its simulation using the hardware buttons.
    • Added Benchmark mode to watch demo.
  • Added the QUL_PLATFORM_DEFAULT_LAYER_RENDERING_HINTS CMake variable to enable configuring the platform layer engine with default rendering hints.
  • Added support for fill paths with linear gradients:
    • Added the DrawingEngine APIs.
    • Added the Gradient QML type to enable drawing ShapePath and Rectangle with linear gradients.
    • Added support for hardware accelerated blending of linear gradients on the Infineon TRAVEO™ T2G and NXP i.MX RT1170 reference boards.
  • Fixed GUI freeze on the Desktop backend if an error occurs in the Core library. The backend now has a error handler to stop execution if an error is detected.
  • Fixed duplicate file warnings when building with IAR.
  • Fixed qulrcc to use better hashing techniques to avoid name conflicts if an application uses large no. of images.
  • Fixed compiler and linker warnings when building with the ARM GCC 12.x toolchain.
  • Fixes to demos and examples:
    • Increased the text cache size to improve render performance for thermo demo on STM32 boards.
    • Updated the freertos-multitask example to show how using queues to set Qt Quick Ultralite properties, and communicate bi-directionally between the Qt Quick Ultralite and other threads.
    • Updated the Shapes example to show linear gradients usage.
  • Refactored qmltocpp to make sure that it generates better code for empty structs. This improves flash memory footprint (3% to 7%) depending on the application.
  • Upgrades:
    • TRAVEO™ T2G CYT4DN SDK version 2e.2.0.
    • TRAVEO™ T2G Sample Driver Library (SDL) version 7.9.0.
  • QmlProject updates:
    • Added Project.supportedLanguages property to list the supported languages.
    • Added Project.primaryLanguage property to configure the default language.
    • Added sanity check to enable verifying the nodes and properties in a qmlproject file.
    • Added the MCU.Config.displayRotationAngle property to control the clockwise rotation angle.
  • Added support for defining a Connections signal handler using the function syntax.
  • Added support for Text.StyledText textFormat in a StaticText item. This enables adding inline images (with size) using HTML tags.
  • Added Qul::PlatformInterface::ImageDecoder API to enable implementing custom image decoder. See Image decoder integration for more information.
  • Added support for configuring a rotation angle for the entire application to match orientation of the physical display. See MCU.Config.displayRotationAngle QmlProject property for more information.

Fixed issues

Qt for MCUs v2.7.1

  • Fixed layer positioning when display rotation angle is set to 90 or 270.
  • Fixed qmlprojectexporter to enable faster export of larger projects. Use the --parallel or -j command-line to parallel process the QML files.
  • Fixed linking errors when building the image_cache example for Renesas RH850 on AUTOSAR.
  • Fixes to qmltocpp:
    • Generate the includes list in the correct order.
    • Qualify type with module names if the are used outside its module.
    • Make parent property available to the inline component declaration object to avoid a crash.
    • Improve anchor binding inside the inline component when it is used as a sourceComponent for Loader.
    • Check if a custom property of type Component is used as a binding for souceComponent to avoid a crash.
    • Fix crash on accessing object aliases from other QML files.
  • Fixed QulPerf to make the performance metric values are updated only if the recording is enabled.
  • Fixed image decoder to avoid a crash on STM when images are smaller than the input buffer.
  • Fixed sprite_animations example to avoid rendering artifacts.
  • Fixed host tools qulrcc, qmltocpp, and fontcompiler to make sure the generated code is consistent.
  • Fixed error loading the QtQuick.Controls module with generateQmltypes enabled. The qmlprojectexporter needs the --qml-mappings-dir argument to load such modules and also provide more information if those modules are not found.

Qt for MCUs v2.7.0

  • qmlprojectexporter fixes:
    • Check and remove duplicate entries in the QmlFiles node.
    • Check the type of the files in different files node to make sure they are relevant for that node.
    • Collect font files from the modules.
    • Warn if the TranslationFiles.MCU.omitSourceLanguage QmlProject property is not true when using ID-based translation.
    • Fixed CMake logic to report useful error messages if qmlprojectexporter fails due to missing dependencies.
    • Don't use system Clang with installed builds.
  • qmltocpp fixes:
    • Generate C++ code based on the C++ standard of the project.
    • Accept object pointer in function arguments.
    • Fix logic to lookup the signal handler (with "on" prefix) for properties before considering a C++ function as the signal handler.
    • Consider when condition for default states.
    • Consider the declared state property before the StateChangeEvent.
    • Improve code generated from QML to avoid empty structs, improving flash memory footprint from 3 % to 7 % depending on the application.
  • Changed the CheckBox::checkState enums to be consistent with Qt.
  • Fixed wrong positioning and rendering glitches with transformed text because of one pixel offset.
  • Fixed the wrong spacing between the glyphs while rendering complex text with Spark font engine.
  • Fixed duplicate definition warning on STM32H750B-DISCO with ARM GCC.
  • fontcompiler fixes:
    • Use enough memory for heap and glyph cache when using Spark font engine.
    • Exit gracefully after printing an error message on QUL_ASSERT.
  • Fixed GHS 2018 compiler warnings while building for Renesas RH850.
  • Improve ArcItem implementation to make sure it is compatible with Qt Quick.
  • Fixed implementation for Item to make sure the visibility updates consider the property binding on its visible property.
  • Fixed the heap structure field for thermo_demo (benchmark mode) on IAR baremetal platforms, to avoid wrong heap usage report.
  • Updated the FreeType rasterizer to support the ARGB32_Premultiplied and ARGB4444_Premultiplied formats.
  • Fixed CMake logic to find the correct path to the Clang resources.

New APIs

APIs for application development

New QML Types

New QML Properties

QML Type Rectangle:

gradient : Gradient

QML Type ShapePath:

fillGradient : ShapeGradient

APIs for platform development

New Classes

New Global Functions

void generateGradientColorTable(const PlatformInterface::GradientStops &gradientStops, float opacity, PlatformInterface::Rgba32 *colorTable, int size, bool premultipliedAlpha)

Changes in Previous Versions

What's New in 1.1

Changes in v1.1.0

What's New in 1.2

Changes in v1.2.0

What's New in 1.3

Changes in v1.3.0

What's New in 1.4

Changes in v1.4.0

What's New in 1.5

Changes in v1.5.0

What's New in 1.6

Changes in v1.6.0

What's New in 1.7

Changes in v1.7.0

What's New in 1.8

Changes in v1.8.0

What's New in 1.9

Changes in v1.9.0

What's New in 2.0

Changes in v2.0.0

What's New in 2.1

Changes in v2.1

What's New in 2.2

Changes in v2.2

What's New in 2.3

Changes in v2.3

What's New in 2.4

Changes in v2.4.0

What's New in 2.5

Changes in v2.5

What's New in 2.6

Changes in v2.6.0

What's New in 2.7

Changes in v2.7.0

Available under certain Qt licenses.
Find out more.