C

Known Issues or Limitations

The following is a list of known issues in Qt for MCUs 2.9.0. For workarounds or information about the status of these issues, contact Qt Support.

To view all user-reported issues, visit the Qt for MCUs public bug tracker.

Qt Quick Ultralite

  • Qt Quick Ultralite is a subset of Qt Quick and as such does not provide all the base and control QML types, which are available on the non-MCU platforms. Refer to Qt Quick Ultralite vs Qt Quick and Differences between Qt Quick Ultralite Controls and Qt Quick Controls for more information.
  • The Text type does not properly render unicode sequences that require complex text layout if the Static Font Engine is used. Use Monotype Spark font engine for complex text.
  • SequentialAnimation and ParallelAnimation do not start automatically when assigned to a property using the "on" syntax. Explicitly set the running property to true to start the animation.
  • font.pointSize does not respect screen DPI. Recommend using font.pixelSize instead.
  • The default state has some limitations. Refer to Default state limitations for more information.
  • Binding to the state property of an Item works only if the target state does not use the when condition. You should use one of the two methods to change the state using an expression.
  • States where multiple PropertyChanges or AnchorChanges target anchor properties on the same item will not work as expected. Use a single PropertyChanges instead.
  • Setting anchors to undefined does not restore previous position and size bindings.
  • A RotationAnimation in a transition may apply to non-rotation properties. Use PropertyAnimation::properties instead.
  • All delegates in a ListView must have the same size. The size must be explicitly specified and cannot be dynamically changed.
  • onPropertyChanged is not supported for grouped properties.
  • Bindings on color value accessors are not supported.
  • Using the clip property on transformed items is not supported.
  • Transforms on an item do not apply to the item's children. Individually set transforms on each child instead.
  • AnimatedSprite does not offer finishBehavior property, and it stays on the final frame when the animation completes. If you want to offer the default behavior like in Qt Quick, use the finished signal and currentFrame property.
  • The frameDuration property of AnimatedSprite and AnimatedSpriteDirectory does not guarantee the exact duration between each frame. It only means the next frame should be rendered after the given time interval. The platform's workload may affect the time interval.
  • Definining enumerations that have the same enumerators is not supported. For more info, see enumeration.
  • Qul::ListModel<std::string> will return an empty string. To avoid this issue, wrap the type in a struct as shown in the following example:
    struct ModelData
    {
        std::string text;
    };
    class MyModel: public Qul::ListModel<ModelData>
    {
        ...
    };
  • QML objects defined in C++ and exported by InterfaceFiles.files cannot be used in Loader.
    Loader {
        source: "MyCppType.qml"
    //          ^ error: File MyCppType.qml does not exist.
    }

    To avoid this issue, create a QML file, use the MyCppType there, and use the QML file name as the source.

    // MyQmlType.qml
    Item { // Note: The root item has to be a visual type!
        MyCppType {
            // ...
        }
    }
    Loader {
        source: "MyQmlType.qml"
    }
  • Component usage.

    The 'parent' accessor from the root item in a Component when used with Repeater or ListView will print an error "Referencing component 'parent' from unsupported context".

    This does not work:

    Component {
        id: myComp
        Rectangle {
            width: parent.width
            height: parent.height / 2
            color: "pink"
        }
    }
    Repeater {
        model: 1
        // Referencing Component via id where the root item uses parent.* accessor
        delegate: myComp
    }

    The workaround is to use the 'id' of the referenced object instead of the 'parent' accessor.

    There are also various other issues when using anchors inside Component. If the generated cpp code does not compile, try writing the same logic without using the problamatic anchor bindings. The underlying issue is known, but not fixed yet in this release.

  • Attributes of QML value type objects are readable, but not writable. This applies to the following QML types and their attributes:
  • Display rotation issues:
    • On the Linux platform PlatformContext::presentFrame() gets an incorrect rectangle, leading to unexpected results. This should not be an issue on platforms that ignore the rectangle passed to PlatformContext::presentFrame().
    • Text rendering does not work correctly if the root QML item is smaller than the screen resolution.

Qt Creator

  • QML debugging is not supported
  • QML profiling is not supported

Qt Design Studio

  • On-device preview is not supported. To preview the design on your MCU board, use the auto-generated CMake project and compile it using Qt Creator.

Platforms

Renesas platforms

Renesas RH850-D1M1A

The following is a list of known issues or limitations on the Renesas RH850-D1M1A hardware.

  • Qt Quick Ultralite 2.9.0 does not enter low CPU power mode because enterSleepMode is not implemented on this platform. If no frame is rendered and no other tasks are running, Qt Quick Ultralite loops until next frame needs to be rendered or another task needs CPU time.

Renesas EK-RA6M3G

The following is a list of known issues or limitations on the Renesas EK-RA6M3G hardware.

  • Does not support asset preloading due to limited amount of RAM and non-availability of SDRAM on the evaluation kit board.
  • Uses single-buffering technique by default due to limited amount of RAM. This might result in on-screen flickering. Double-buffering can be enabled from the Renesas e2 studio Graphics LCD (r_glcdc) stack configuration.
  • To prevent visual artifacts from appearing, try to reduce the use of rotated or perspective-transformed images that need to be blended using the CPU. Rebuilding the Qt Quick Ultralite core library in Release might help reducing such artifacts.

NXP platforms

NXP i.MXRT1170

The following is a list of known issues or limitations on the NXP i.MXRT1170 hardware.

  • Qt Quick Ultralite 2.9.0 does not enter low CPU power mode. In normal conditions Qt Quick Ultralite enters this mode when it doesn't update application UI or there is no new touch events to process. Low CPU power mode is disabled on this platform because it interferes with debugging and flashing.
  • The reference platform port has limitations for hardware layers support.

STM32 platforms

Due to limited SDRAM bandwidth, accessing SDRAM with the CPU may cause visual artifacts while the framebuffer is being scanned by the display controller, due to LTDC FIFO Underrun. LTDC FIFO Underrun error may occur in applications that have a lot of UI elements and heavy animations, causing visual glitches. Apart from simplifying the UI, consider using a different build type for the Qt Quick Ultralite core library. For example, Debug or Release instead of MinSizeRel.

STM32F469I-DISCOVERY

The following is a list of known issues or limitations on STM32F469I-DISCOVERY hardware.

  • STM32F469NI does not have double-precision floating-point support.

STM32H750B-DISCOVERY

The following is a list of known issues or limitations on STM32H750B-DISCOVERY hardware.

  • Only the SDK version 1.11.2 is supported.

Other

  • To work around a GNU Arm Embedded Toolchain bug (https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966), all the object files and libraries are passed to ld in a linker group (using --start-group/--end-group). Additionally, libraries are passed to linker before application object files, which is opposite to default behavior.
  • Debugging on target with GNU Arm GDB 10.3-2021.10 could lead to a crash (internal-error: virtual memory exhausted). You can avoid the crash by either replacing the -g3 option with -g in lib/cmake/Qul/toolchain/armgcc.cmake when using GNU Arm GCC 10, or using GNU Arm GCC 9 as toolchain.
  • Unicode filename in resource system may cause a build error on Windows. It can be resolved by using the proper version of Ninja and CMake. The bundled tools have been verified to support a unicode filename.
  • On Linux, if you have installed gcc-12 without g++-12, the GCC headers in the include path lead to missing C++ headers ('cstdint' file not found) when running qmlinterfacegenerator. Either remove gcc-12 or install g++-12 to resolve this issue.

Available under certain Qt licenses.
Find out more.