C
What's New in 2.5
Qt Quick Ultralite maintains source compatibility between minor releases. However, some changes may require you to adapt the application code. The following sections highlight such changes:
Important changes
- Enabled the critical assert error codes for debug builds only, and disabled them for
Rel
andMinSizeRel
builds. - Cypress Traveo II prebuilt libraries are built using the GHS 2017 compiler. You need the same compiler version to either use these libraries or recompile the core library.
- Downgraded the platform code for Renesas RH850 platform to C++03 and Cypress Traveo II to C++11.
- Added support for NXP MIMXRT1060-EVKB and dropped support for the earlier version of this board (
MIMXRT1060-EVK
). - Deprecated the
platformexporter
tool as you can now export the platform sources usingqmlprojectexporter
. Refer to QmlProject Manual for more information.
New features
- Added support for software vector graphics.
- Added support for GHS 2015.1.7 compiler with C++03 on the Renesas RH850.
- SDK upgrades:
- STM32H750B SDK to v1.11.0
- STM32F469 SDK to v1.27.1
- Renesas RH850/D1M1A RGL SDK to v2.1.0a
- NXP RT1050 and RT1064 to SDK v2.13.0
- NXP RT1060 and RT1170 to SDK v2.13.1
- Cypress Traveo II SDK to 1.2.1
- Added support for pausing and resuming an AnimatedSprite.
- QmlProject updates:
- Added documentation to enable easy migration of the UI resource configuration to QmlProject.
- Update the Quick start guides with
qmlprojectexporter
workflow. - Added the resourceAnimatedSpriteOptimizations QmlProject property to enable rendering only the changed regions of an image.
- Added support for generating a GHS Multi IDE project. Refer to the QmlProject Manual for more information about this option.
- Added support for LVDS displays on Renesas RH850/D1M1A. Refer to the supported displays section for more information.
Fixed issues
Qt for MCUs v2.5.4
- Fixed screen flickering artifacts on the STM32F769I-DISCOVERY and STM32H750B-DISCOVERY boards caused by LTDC underruns if the FMC controller is blocked.
- Fixed animation logic to avoid restarting running animations on calling
start()
. - Fixed potential compile error about incomplete type when sub-classing PaintedItemDelegate.
- Fixed
qulrcc
to estimate correct resource cache size for sprite animations. - Fixed error using certain TrueType fonts with the Spark font engine.
- Upgraded Qt License Server (QLS) to 3.2.0.
qmltocpp
fixes:- Qualify type with its module name when using it outside the parent module.
- Generate correct C++ code for empty if blocks.
- Avoid generating incorrect code for anchors.
- Generate correct C++ code for ScriptAction instances within the scope of a Loader or lRepeater.
- Remove unnecessary call to
update()
while generating code for StaticText instances.
qmlprojectexporter
fixes:- Fix order of include paths passed to
qmltocpp
. - Add
--parallel
and-j
command-line options to parallel process the QML files. - Collect font files from the modules.
- Fix order of font files passed to the
fontcompiler
. - Fix crash due to resourceCompression enabled in a module
qmlproject
file and not in the mainqmlproject
file.
- Fix order of include paths passed to
Qt for MCUs v2.5.3
- Fixes to examples and demos:
- Fixed a flickering artifact in the blur effect of the Qt Quick Ultralite traveo_t2g_effects Example.
- qmlprojectexporter fixes:
- Fixed qmlprojectexporter to look for modules in
importPaths
recursively. The URI must match the relative path of the module's qmlproject file from one of the import paths. This is an alternative to adding the module in a ModuleFiles node. - Fixed qmlprojectexporter to add
qulModules
as imports inqmldir
to ensure that the imports in Qt Creator are loaded in the correct order. - Fixed qmlprojectexporter to collect font files from module qmlprojects.
- Fixed qmlprojectexporter to look for modules in
- qmltocpp fixes:
- Handle a user-defined state with an empty name correctly.
- Verify that required properties are initialized when the object is not used as a delegate.
- Ensure that required property is given
m_cppNameProperty
of model properties only if the object is used as a delegate. - Check if a custom property of type
Component
is used as a binding forsouceComponent
to avoid a crash. - Make parent property available to the
inline
component declaration object. - Improve anchor binding inside the
inline
component when it is used as a LoadersourceComponent
. - Check if the QML custom component or its base class already defines an attached property so that it won't generate a new attached type node when the component is initialized in another QML file.
- Fixed an error causing incorrect positioning and rendering glitches with transformed text.
- Fixed some compiler and linker warnings when building with the ARM GCC 12.x toolchain on the STM32H750B-discovery board.
- Fixed a possible hang on Renesas RH850 (that might affect other platforms as well) caused by
PlatformContext::endFrame()
being called without a following call toPlatformContext::presentFrame()
. - Fixed the FreeRTOS memory allocator build issue with IAR on Windows when using the
FREERTOS_PROVIDE_MEMORY_ALLOCATOR_OVERLOADS
option. - Added support for Qt for MCUs to acquire licenses from the Qt License server.
- Fixed the issue in which declaring a required property with an unknown type causes a crash.
- Fixed an ambiguity in the supported MSVC version.
- Fixed the feature matrix regarding shapes and the partial buffering feature.
- Fixed the CMake configuration support for applications under software rasterization.
- Fixed the nested property visibility from binding when the parent's visibility changes to true and the item is created by Loader.
- Fixed the glitching UI on a wearable application for the STMF769 platform.
- Fixed the failures to build with Clang 17.
- Fixed
qmlproject
to prevent a module from depending on itself inimportPaths
. - Fixed RGB888 alpha blending so that it passes the whole color instead of only the first byte to the interpolation function.
Qt for MCUs v2.5.2
- Reduced color depth for watch demo to avoid flickering UI artifacts on STM32H750B-discovery board when built with IAR.
- Fixed assert and UI artifacts when rendering RTL text that is elided and not aligned to the left.
- Fixed SwipeView behavior to make sure that enabling and disabling a view also affects its children.
qmltocpp
fixes:- Generate valid C++ code for quoted string literals.
- Handle objects in JavaScript functions as pointers.
- Use correct type for the RotationAnimation's
from
andto
properties. - Support translation file names with an underscore instead of dot to improve compatibility with Qt.
- Fixed state update issues with the Spark font engine if MCU.Config.fontVectorOutlinesDrawing is enabled.
- Fixed
fontcompiler
to use enough memory for heap and glyph cache when using Spark font engine. - Fixed unknown artifacts on resizing the window on Desktop platform. The window has a fixed size now.
- Fixed the software renderer to report error on using an unknown image format.
- Fixed the ImageLayer implementation to avoid invalid memory access, which could crash the application.
- ShapePath fixes:
- Use the default value (
1
) for strokeWidth when it is0
. This improves code compatibility with Qt. - Fix Qt Quick Ultralite graphics engine to correct blending of paths if
QUL_COLOR_DEPTH
is8
.
- Use the default value (
qmlprojectexporter
fixes:- Fixed CMake logic to report useful error messages if
qmlprojectexporter
fails due to missing dependencies. - Ignore the
filter
property for the different file nodes in aqmlproject
file. - Avoid linker errors by including dependencies of imported modules in a module.
- Fixed CMake logic to report useful error messages if
- Fixed UI artifacts due to wrong opaque regions in the rendering tree. The renderer computes the opaque regions for children only if they are within bounds.
- Optimized outline generation for cached complex text to avoid UI artifacts due to the large no. of outlines.
- Fixed the local bounds of AnimatedSpriteDirectory to make sure the images used by the animation are not clipped.
- Fixed the render pool size for FreeType to avoid flickering while rendering shapes.
Qt for MCUs v2.5.1
- Fixed Qt desktop platform library to make sure a Qt for MCUs application does not busy-loop on desktop.
- Fixed
qmltocpp
to avoid unknown property warnings by Qt Creator for the StaticText, Rotation, and Scale QML types. - Fixes to examples and demos:
- Added explicit size to the main window in watch demo to avoid clipped edges on Desktop.
- Fixed the swipe_game demo to avoid unexpected artifacts. Dropped overlapping MouseArea objects and restricted to vertical scrolling only.
- Fixed the sprite_animations to avoid rendering artifacts.
- Fixed SwipeView to avoid grabbing touch events for disabled items.
- Fixed wrong stacking order of children with a
z
value. - Updated the code snippets in AnchorChanges documentation.
- Fixed crash while animating an item based on its property binding.
- Fixed regression in SwipeView to make sure
setCurrentIndex()
works as expected, even if you swipe beyond the minimum or maximum index. - Fixed event queue overrun on STM devices by using the
EventQueue::isEmpty
() method. - Fixed
qmlprojectexporter
to avoid callingqmltocpp
on modules that do not have QML files. - Fixed the following issue for AnimatedSprite:
- Avoid applying same frame optimization on cropping.
- Enable RLE compression for cropping optimization.
- Fixed QmlProject config for storage sections to support names with dot prefix.
- Added license check to
qmlprojectexporter
. - Fixed transition animations on PropertyChanges to avoid using property binding from a wrong state. Every call to the
setValue()
method clears the old binding. - Fixed animations triggered from C++ to make sure they don't end early.
- Fixed
qmlprojectexporter
to add the missing optimizations for a GHS project.
Qt for MCUs v2.5.0
- Fixed assertion for auto-wrapped Text items when its horizontal alignment is either
Text.AlignRight
orText.AlignHCenter
. - Improved text cache performance.
- Moved texture cache to internal RAM.
- Improved kit configuration support in Qt Creator.
- Fixed SwipeView to update its currentIndex while dragging.
- Fixed the ProgressBar implementation to initialize its
from
andto
properties with default values. - Improved
ResourceCropImageSequence
optimization support to remove the transparent pixels from the image sequences. - Fixed
qulrcc
to make sure it reuses saved data for the same frames. - Optimized the memory allocations done by the DrawingEngine for path points.
- Downgraded the
example-platform
implementation to C++03 so that it works on all platforms. - QmlProject fixes:
- Ignored DS properties that are not prefixed with
QDS
. - Added
libclang
dependency to avoid build failures when using the MinGW toolchain. - Increased the default process timeout interval to make sure that
qmlprojectexporter
has enough time to process large projects. - Update the logic to collect and include the linker options on a single line.
- Fixed the file selector logic to include the QML module dependencies.
- Ignored DS properties that are not prefixed with
- Examples and demos:
- Fixed thermo demo to avoid the flickering artifacts on STM32F769.
- Fixed the shapes example orientation from horizontal to vertical to avoid elements becoming too small on the NXP i.MX RT1170 platform.
- Updated the translation example resize the flag image based on screen orientation.
- Updated the LED PIN configuration for the freertos_multitask example to make sure the LED blinks on NXP RT1050.
- Fixed memory corruption when using the
onChanged
QML handlers for C++ properties. - Fixed flash targets for external Octa flash on Renesas RH850/D1M1A.
- Fixed
qmltocpp
to use relative path to the C++ functionality used in QML. - Added CMake warning about insufficient internal flash storage on Renesas RA6M3G with build types other than
MinSizeRel
. Refer to Renesas EK-RA6M3G notes for more information.
New APIs
APIs for application development
New QML Properties
QML Type AnimatedSprite:
paused : bool |
New QML Methods
QML Type AnimatedSprite:
Changes in earlier versions
Changes in v1.1.0 | |
Changes in v1.2.0 | |
Changes in v1.3.0 | |
Changes in v1.4.0 | |
Changes in v1.5.0 | |
Changes in v1.6.0 | |
Changes in v1.7.0 | |
Changes in v1.8.0 | |
Changes in v1.9.0 | |
Changes in v2.0.0 | |
Changes in v2.1 | |
Changes in v2.2 | |
Changes in v2.3 | |
Changes in v2.4.0 | |
Changes in v2.5 | |
Changes in v2.6.0 | |
Changes in v2.7.0 | |
Changes in v2.8.0 |
Available under certain Qt licenses.
Find out more.