What's New in Qt 6.9

New and Restored Modules in Qt 6.9

Qt 6.9 adds the following modules and tools:

Removed Modules in Qt 6.9

The following module(s) is deprecated. We strongly advise against using them in new code.

New Features in Qt 6.9

Qt Core Module

  • QJniArray can now create an empty array of a fixed size, and change values in an array using a non-const iterator or operator[]
  • QLocale::uiLanguages() now includes fall-back entries obtained by removing later components of names. Callers that have been doing such truncations for themselves are now encouraged to trust that QLocale knows the right things to try and the right order to try them in.
  • QLocale::bcp47Name() now represents the C locale as "en-POSIX", to distinguish it from plain "en" and better align with the BCP47 spec. The variant POSIX is likewise now recognized as meaning the C locale, when constructing one from its name.
  • QTimeZone::abbreviation() on Windows now returns an abbreviation rather than the full name.
  • QTimeZone::displayName() should now actually provide locale-appropriate names for zones on all platforms, where previously some failed to support this.
  • Converting timestamp strings with a timezone part to QDateTime now recognizes long-form display names of zones.

Qt Graphs Module

  • Added transparency support to Surface3D, utilizing order-independent transparency from QtQuick3D. Only approximate technique (WeightedBlended) has been implemented to QtQuick3D this far, so no accurate techniques can be used yet.
  • Added rootNode property to allow injecting graphs to a View3D in QtQuick3D applications.
  • Added another picking method, doRayPicking, to be used with View3D graph injections.
  • Added QSpline3DSeries class to allow users render their data in splines.
  • Added valueColoringEnabled property to Bars3D, which allows each bar to be colored separately based on its value.
  • Added scaleLabelsByCount property to QAbstract3DAxis, allowing users to define whether axis labels should be scaled based on the total amount of labels.
  • Added labelSize property to QAbstract3DAxis, allowing users to set the sizes of axis labels by each axis.
  • Added support for setting the minimum and maximum rotations in X and Y directions to Bars3D, Scatter3D, and Surface3D.
  • Added alignment property to QAbstractAxis, allowing users to align axes left, right, top, or bottom.
  • Added plotArea property to QGraphsView, allowing users to define the rectangle a graph will be drawn in.
  • Added zooming and panning support to QGraphsView.
  • Added custom input handling support to area, line, pie, and scatter graphs.

Qt GRPC Module

Qt GUI Module

  • QBrush and QPen got optimized operators for comparing with or assigning from color and style values.
  • QPainter::setBrush() got new optimized overloads for setting a color as a solid brush.
  • QPainterStateGuard is a new RAII class to ensure balanced save/restore operations on a QPainter.
  • Added QWindow::safeAreaMargins() to reflect the safe area of the window.
  • Added parsing and automatic detection of emoji sequences in text, ensuring the use of color fonts when needed as according to the Unicode specification. This parser can be disabled per layout using QTextOption::DisableEmojiParsing, or by disabling the emoji segmenter when configuring Qt.
  • Added QFontDatabase::addApplicationEmojiFontFamily() and related functions for customizing the default emoji font used by the application.
  • Added QFontInfo::variableAxes() for retrieving information about the variable axes supported by a font.

Qt HttpServer Module

Qt Multimedia Module

Qt Network Module

Qt Network Auth Module

Qt OPCUA Module

Qt Positioning Module

Qt Protobuf Module

Qt QML Module

Qt Quick Compiler

Qt Quick Module

  • Added SafeArea attched property to manage safe areas of an Item or Window.
  • Added Shear component for a convenient way of applying shearing transforms to items.
  • Added FontMetrics.capitalHeight property which was previously missing from the Qt Quick API.
  • Added FontInfo type for retrieving the results of font resolution, matching the QFontInfo class in C++.

Qt Quick Controls Module

Qt Quick Dialogs

Qt Quick Shapes Module

Qt Quick Effects Module

  • New RectangularShadow element for fast rounded rectangle shaped shadow/glow. The API is similar to CSS box-shadow, with color, offset, spread and blur values.

Qt Quick 3D Module

Qt Quick 3D XR Module

Qt Quick VectorImage Module

Qt Shader Tools Module

Qt Sql Module

Qt SVG Module

Qt Test Module

Qt VirtualKeyboard Module

  • Added a new Japanese layout which uses flick keys.
  • Added support for adjusting key sound volume.

Qt WebEngine Module

Tools

QDoc Documentation Generator

Platform Changes

Build System Changes

  • Building Qt and using Qt in CMake projects now requires CMake version 3.22 or later.

Desktop Platforms

macOS

WebAssembly

Windows

Wayland Client on Linux

  • Added support for the new xdg-toplevel-icon-v1 protocol to make QWindow::setIcon work if the compositor supports this protocol as well.
  • The underlying wl_surface of a window now shares its lifetime and is no longer destroyed when the window is hidden.

Mobile Platforms

Android

  • Support uncompressed native libs within APKs and removing the need for packagingOptions.jniLibs.useLegacyPackaging true.
  • Introduce qt_add_android_permission() CMake function.
  • Add QT_ANDROID_COMPILE_SDK_VERSION CMake property to set the SDK level for building Java code.
  • Add QT_ANDROID_APP_ICON CMake property to set an app's icon.
  • Add QT_ANDROID_APP_NAME CMake property to set an app's name.
  • Decouple location and bluetooth permissions for API level 31+.
  • Allow setting a maximum for queued background UI events.
  • Add script to easily deploy, run apps and get logs from terminal.
  • QML for Android and QtQuickView:
    • Add setData() and dataChanged() methods to QtAbstractItemModel.
    • Add OnDataChangedListerner callback interface.
    • QtQuickViewContent: Add onStatusChanged() overload that passes the underlying QtQuickViewContent object.
    • Support multiple embedded views from an Android Service.

iOS

visionOS

Embedded Platforms

Boot to Qt

RealTime OSs

List of API Changes

These pages contain an overview of API changes in Qt 6.9:

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.