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 makeQWindow::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.