Revision control
Copy as Markdown
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page whatsnew611.html
\title What's New in Qt 6.11
\ingroup whatsnewqt6
\brief Lists the new features in Qt 6.11.
\meta sortkey 611
\section1 New Modules in Qt 6.11
Qt 6.11 adds the following modules:
\list
\li \l {Qt Canvas Painter} - An accelerated 2D painting solution for Qt Quick
and QRhi-based render targets.
\li \l {Qt OpenAPI} - An extension of the upstream Open API generator that
generates Qt HTTP clients, typically used for RESTful APIs.
\li \l {Qt TaskTree} - Provides a declarative way to compose and execute
asynchronous task workflows.
\li \l {Qt Labs StyleKit} - A dedicated styling API that streamlines styling
Qt Quick Controls through a set of shared design attributes.
\endlist
The new modules are in \e{Technology Preview}, excluding their API from
\l{Compatibility promises}{Qt's compatibility promises}. But we very
much welcome feedback to further improve them! Be it via the
the comments of the linked blog posts.
\section2 Qt Canvas Painter Module
\l{Qt Canvas Painter} is an accelerated 2D painting solution for Qt Quick
and QRhi-based render targets. See the also the
for an overview.
\section2 Qt OpenAPI Module
to generate Qt HTTP clients, typically used for RESTful APIs. In addition to the
documentation, the
{REST Better with the Support of OpenAPI in Qt 6} blog post gives a good overview.
\section2 Qt TaskTree Module
\l {Qt TaskTree} provides a declarative way to compose and execute
asynchronous task workflows in C++. See the
series for an overview.
\section2 Qt Labs StyleKit Module
\l{Qt Labs StyleKit} is a dedicated styling API that streamlines styling
Qt Quick Controls through a set of shared design attributes.
\section1 New Features in Qt 6.11
\section2 ActiveQt Module
No noteworthy changes.
\section2 Qt Bluetooth Module
No noteworthy changes.
\section2 Qt CoAP Module
\list
\li \l QCoapClient::bindInterface allows to bind the communication to a specific
network interface.
\endlist
\section2 Qt Core Module
\list
\li \l QDate is now weakly incrementable, i.e. implements pre- and post-fix increment
(and decrement) operators, and can be used in a C++20 \c{std::views::iota}.
\li \l QJniObject APIs can now be called with \c{std::expected} (or an equivalent type)
as the return type, in which case Java exceptions are not consumed by the framework
and instead passed back to the caller as the unexpected result.
\li \l QRangeModel::ItemAccess provides a customization point for accessing role data
of a multi-role item type.
\li \l QRangeModel can now be used with C++ ranges that don't provide a constant
\c{std::begin/end} implementation, such as C++20 \c{std::views::filter}.
\li With ranges that use the same QObject subclass for multi-role items, the new
\l QRangeModel::autoConnectPolicy can be set to Full or OnRead to connect the
changed-signals of all exposed properties of QObject items to the corresponding
\l {QAbstractItemModel::}{dataChanged()} signal emission.
\li \l QRangeModelAdapter provides a typical C++ container API to the range a QRangeModel
operates on, ensuring that relevant QAbstractItemModel signals are emitted on
changes, without user code having to work with QModelIndex. This new class is under
technology preview.
\li On Windows, Qt now automatically generates an application manifest for
executables built with CMake. The manifest derives the application version from
\c PROJECT_VERSION, supports customization of the project identifier and execution
level via CMake variables, declares compatibility with Windows 10 and Windows 11,
and enables \c longPathAware.
\endlist
\section2 Qt Concurrent Module
No noteworthy changes.
\section2 Qt D-Bus Module
No noteworthy changes.
\section2 Qt Graphs Module
\list
\li Added new \l{QCustomSeries} class to allow users to create their own 2D graph
types, such as candlestick or box-plot graphs
\li Added multi-axis support to 3D graphs in the form of
\l{QBar3DSeries::rowAxis}{rowAxis}, \l{QBar3DSeries::valueAxis}{valueAxis}, and
\l{QBar3DSeries::columnAxis}{columnAxis} properties in \l{QBar3DSeries}, and
\l{QScatter3DSeries::axisX}{axisX}, \l{QScatter3DSeries::axisY}{axisY}, and
\l{QScatter3DSeries::axisZ}{axisZ} properties in \l{QScatter3DSeries} and
\l{QSurface3DSeries}
\li Added \l{QPieSlice::subSlicesCount}{subSlicesCount},
\l{QPieSlice::subSlicesSum}{subSlicesSum},
\l{QPieSlice::subSlicesRatio}{subSlicesRatio}, and
\l{QPieSlice::sliceChildren}{sliceChildren} properties in \l{QPieSlice} to allow
creating sub slices in pie and donut graphs
\li Added \l{QDateTimeAxis::visualMin}{visualMin} and
\l{QDateTimeAxis::visualMax}{visualMax} properties in \l{QDateTimeAxis} and
\l{QValueAxis} to hold the visible axis ranges
\li Added \l{QAreaSeries::gradient}{gradient} and
\l{QAreaSeries::selectedGradient}{selectedGradient} properties in \l{QAreaSeries}
to allow using gradients in area graphs
\li Added \l{QBarCategoryAxis::labelPosition}{labelPosition} property in
\l{QBarCategoryAxis} to allow adjusting the label placement in bar graphs
\li Added \l{QDateTimeAxis::timeZone}{timeZone} property in \l{QDateTimeAxis} to allow
setting your own time zone for the axis
\li Added \l{QDateTimeAxis::pan}{pan} and \l{QDateTimeAxis::zoom}{zoom} properties
in \l{QDateTimeAxis} to allow panning and zooming the same way as in \l{QValueAxis}
\li Added \l{QAbstractAxis::color}{color} and \l{QAbstractAxis::subColor}{subColor}
properties in \l{QAbstractAxis} to allow overriding theme colors for the axes
\li Added \l{QLineSeries::joinStyle}{joinStyle}, \l{QLineSeries::lineStyle}{lineStyle},
\l{QLineSeries::strokeStyle}{strokeStyle}, \l{QLineSeries::dashOffset}{dashOffset},
and \l{QLineSeries::dashPattern}{dashPattern} properties in \l{QLineSeries} to
allow further styling in line graphs
\li Added \l[QML]{SplineSeries::optimized}{optimized} property in \l{QSplineSeries} to
allow using Catmull-Rom interpolation instead of the more performance-heavy and
accurate default method
\li Added \l{QBar3DSeries::customRowLabels}{customRowLabels} and
\l{QBar3DSeries::customColumnLabels}{customColumnLabels} properties in
\l{QBar3DSeries} to allow overriding row and column labels
\li Added \l{QCustom3DItem::rotationAbsolute}{rotationAbsolute} property in
\l{QCustom3DItem} to fix problems in custom item rotations
\li Added \l{QSurface3DSeries::rowsSanitized}{rowsSanitized} property in
\l{QSurface3DSeries} to automatically remove rows with invalid data
\li Added \l{GraphsItem3D::cutoffMargin}{cutoffMargin} in \l{GraphsItem3D}
and \l{Q3DGraphsWidgetItem} to adjust the sensitivity of culling items near graph
margins
\li Added support for multiple \l{QBarSeries} in one \l[QML]{GraphsView}.
\li Added support for negative values in \l{QBarSeries}.
\li Added support for invalid values in \l{LineSeries} which results in visual gaps.
\endlist
\section2 Qt GRPC Module
\list
\li Added the new Client Interception mechanism to QtGrpc to enable
interception and modification of outgoing requests and incoming responses.
\li Qt 6.11 adds comparison operators (\c{operator==} and \c{operator!=}) for
\l QGrpcCallOptions and \l QGrpcChannelOptions, enabling direct equality
checks between option objects.
\li \l QGrpcOperation class introduces a
\l{QGrpcOperation::}{serverInitialMetadataReceived()} signal that notifies
RPC handlers as soon as the server initial metadata is received.
\li \l QGrpcChannelOptions and \l QGrpcCallOptions classes now provide
\l{QGrpcChannelOptions::}{filterServerMetadata()} and
\l{QGrpcChannelOptions::}{setFilterServerMetadata()} methods to control
whether protocol-related metadata is included in server responses.
\li The \l[CPP]{QtGrpc} namespace introduces the \l{QtGrpc::}{RpcType} enum and
\l{QtGrpc::}{RpcDescriptor} struct to describe gRPC methods with their
service name, method name, and communication pattern.
\endlist
\section2 Qt GUI Module
\list
\li Accessibility events of the new QAccessible::RoleChange type get emitted by the
docking window framework when dock widgets change between docked and floating.
\li The new accessibility role \l{QAccessible::Role}{Switch} is used by the Switch
type in Qt Quick Controls.
\li The new accessible attribute \l {QAccessible::Attribute}{Orientation} is used by
sliders and similar controls to report their orientation to accessibility clients.
\li QRawFont got an API to get the \l {QRawFont::}{glyphCount()} and to look up the
\l {QRawFont::}{glyphName()} for a glyph index of the font.
\li QTextCharFormat got new APIs to set \l {QTextCharFormat::setFontFeatures()}
{font features} and \l {QTextCharFormat::setFontVariableAxes()}{variable axes}.
\endlist
\section2 Qt Help Module
No noteworthy changes.
\section2 Qt HTTP Server Module
\list
\li Added support for HTTP/1.0 clients.
\li Qt 6.11 introduces configurable request size limits to \l QHttpServerConfiguration,
allowing applications to protect against oversized requests. New methods include
\l {QHttpServerConfiguration::}{setMaximumUrlSize()},
\l {QHttpServerConfiguration::}{setMaximumTotalHeaderSize()},
\l {QHttpServerConfiguration::}{setMaximumHeaderFieldSize()},
\l {QHttpServerConfiguration::}{setMaximumHeaderFieldCount()},
and \l {QHttpServerConfiguration::}{setMaximumBodySize()}. When limits
are exceeded, the server responds with appropriate HTTP error codes (414, 431,
or 413).
\li Route handlers can now return \c QFuture<void> and respond using a
\l {QHttpServerResponder}&& argument in another thread, enabling CPU-intensive
request processing to be offloaded from the main server thread. For HTTP/2
connections, multiple requests can be processed concurrently, while HTTP/1.x
connections process requests sequentially but still benefit from background
processing. Socket I/O always remains in the QHttpServer thread.
\li \l {QHttpServerResponder::}{isResponseCanceled()} was added to
\l QHttpServerResponder, allowing handlers to detect when a client
has disconnected and exit early to avoid unnecessary processing.
\endlist
\section2 Qt Image Formats Module
Some bundled third-party modules were updated, see \l{License Changes}.
\section2 Qt Lottie Animation
\list
\li Added support for path fill rules.
\li Added CMAKE command \l{qt_target_qml_from_lottie} for converting from Lottie to QML at
build time.
\li \l{lottietoqml} and \l{VectorImage} backend are no longer tech preview.
\li \l{VectorImage}: Added support for animating shapes along paths.
\li \l{VectorImage}: Added support for morphing animations (interpolating between two shapes.)
\li \l{VectorImage}: Added support for matte layers.
\endlist
\section2 Qt MQTT Module
No noteworthy changes.
\section2 Qt Multimedia Module
\list
\li Added callback-based overloads for the start methods of \l{QAudioSource} and \l{QAudioSink} to
allow real-time audio processing.
\endlist
\section2 Qt Network Module
\list
\li \l QNetworkRequest can now specify the TCP Keep Alive parameters for the current
request. Also, the default TCP Keep Alive parameters have been changed in
\l QNetworkAccessManager and now the inactive connections are terminated after two
minutes of inactivity.
\endlist
\section2 Qt Network Authorization Module
No noteworthy changes.
\section2 Qt NFC Module
No noteworthy changes.
\section2 Qt OPC UA Module
\list
\li The bundled \l Open62541 was updated to v1.4.13. See also \l{License Changes}.
\endlist
\section2 Qt OpenGL Module
No noteworthy changes.
\section2 Qt Positioning Module
\list
\li \l{Qt for WebAssembly} applications can now use the browser's GeoLocation API as
backend.
\endlist
\section2 Qt PrintSupport Module
\list
\li Accessibility improvements to print dialogs: Label buddies and proper focus
order were established to improve screen reader support and keyboard navigation.
\endlist
\section2 Qt Protobuf Module
\list
\li The \l qprotobufmessage_cast() function provides safe downcasting of
\l QProtobufMessage pointers. Similar to \l qobject_cast() or \c dynamic_cast(),
it enables easy and safe run-time type checking and conversion.
\endlist
\section2 Qt Qml Module
\list
\li Added workspace support in QML Language Server.
\li Added go to C++ definition support in QML Language Server.
\li Added support to silence context property warnings via a \c{.contextProperties.ini} configuration file for qmllint.
\li Introduced \c{override} and \c{virtual} keywords which, together with the existing \c{final} keyword and tooling support,
help prevent accidental property shadowing and allow explicit property overriding in QML.
See \l{qtqml-syntax-overridesemantics.html}{Property Shadowing and Override Semantics} for details.
\li Gave the \l easingCurve value type a name and transformed the
\l Easing namespace into a singleton.
\li Added APIs to QQmlContext to get the \l{QQmlContext::childContexts()}
{list of child contexts} and to \l{QQmlContext::findObjectRecursively()}{find an object
by id}.
\li Added GroupAttributesTogether option to qmlformat. This implies the NormalizeOrder option
and reorders QML categories without sorting attributes (property definitions, property bindings,
methods, signals, and enums).
\li Added SingleLineEmptyObjects option to qmlformat.
This prevents empty objects from expanding into a second line.
\endlist
\section2 Qt Quick Module
\list
\li Added CMAKE command \l{qt_target_qml_from_svg} for converting from SVG to QML at build
time.
\li Added APIs to \l Flickable to \l{Flickable::positionViewAtChild}{position} or \l{Flickable::flickToChild}{flick}
the view to a child and to \l{Flickable::flickTo}{flick to a position}.
\endlist
\section2 Qt Quick Controls Module
\list
\li Added \l DoubleSpinBox, which is similar to \l SpinBox but supports
floating-point values.
\li Added \l {DialogButtonBox::}{defaultButton} and
\l {DialogButtonBox::}{defaultStandardButton} to \l DialogButtonBox.
When set, the respective button will be highlighted and receive
activeFocus whenever the DialogButtonBox gets focus.
\endlist
\section2 Qt Quick Dialogs Module
No noteworthy changes.
\section2 Qt Quick Effects Module
\list
\li Qt 6.11 adds four new properties to \l{RectangularShadow}
for independent corner radius control: \l{RectangularShadow::}{topLeftRadius},
\l{RectangularShadow::}{topRightRadius},
\l{RectangularShadow::}{bottomLeftRadius}, and
\l{RectangularShadow::}{bottomRightRadius}. Each property
falls back to the existing \l{RectangularShadow::}{radius} property
if not set, or creates a sharp corner when set to zero, enabling more
flexible shadow shapes with different corner radii per corner.
\endlist
\section2 Qt Quick Layouts Module
No noteworthy changes.
\section2 Qt Quick Particles Module
No noteworthy changes.
\section2 Qt Quick Timeline Module
No noteworthy changes.
\section2 Qt Quick Test Module
No noteworthy changes.
\section2 Qt Quick Widgets Module
No noteworthy changes.
\section2 Qt Quick 3D Module
\list
\li Added QML API for user-defined render passes, enabling custom rendering pipelines
directly in QML without C++ knowledge
\li Added \l{ExtendedSceneEnvironment::ssrEnabled}{ssrEnabled} property in
\l{ExtendedSceneEnvironment} to enable screen-space reflections (SSR)
\li Added screen-space global illumination (SSGI) effect to
\l{ExtendedSceneEnvironment}, providing ambient occlusion and real-time indirect
lighting
\li Added per-object motion vector generation for Temporal AA and motion blur effects
\li Added layering support to allow grouping nodes and controlling which layers the
camera renders
\li Added linked list order-independent transparency (OIT) rendering method
\li Added \c{NORMAL_ROUGHNESS_TEXTURE} support in post-processing effects and custom
materials
\li Added blue noise sampling to PCF soft shadows for improved quality with less
visible noise patterns
\li Added proper handling of pre-multiplied alpha for Qt Quick content in textures
\li Added \c{VIEW_MATRIX} and \c{PROJECTION_MATRIX} exposure to post-processing
effects
\li Added \l{View3D::pickInRect()}{pickInRect()} method in
\l{View3D} for rectangle-based object selection
\li Added \l{View3D::closestPointPick}{closestPointPick()} method in \l{View3D} to
find the closest point on a surface to a given point
\li Added \l{View3D::rayPick}{rayPick()} overload that accepts a specific model
parameter
\li Added scene shape for particle emitters that dynamically calculates shapes based
on scene geometry
\li Added \l{QQuick3DTextureProviderExtension} API for simplified custom texture
provider creation
\li Added \l{QSSGFrameData::scheduleRenderResults}{scheduleRenderResults()} function
in \l{QSSGFrameData} to request specific render pass results
\li Updated Assimp to v6.0.2
\endlist
\section2 Qt Quick 3D XR Module
\list
\li Added OpenGL desktop Linux support (Monado, Xlib, Wayland platforms)
\li Extended \l{XrView::processTouch}{processTouch()} to deliver touch events to any
pickable \l{Model}, not just \l{XrItem}
\li Enhanced \l{XrView::touchpointState}{touchpointState()} to return surface position
and normal vector information for 3D touch interactions
\li Added Popup and Menu support in \l{XrItem} through dedicated QQuickOverlay
\li Updated OpenXR to v1.1.49
\endlist
\section2 Qt Quick 3D Physics Module
No noteworthy changes.
\section2 Qt Quick VectorImage Module
\list
\li Added support for SVG masks.
\li Added support for SVG post-processing filters to match the support in \l{Qt SVG}:
feGaussianBlur, feColorMatrix, feOffset, feFlood, feBlend, feComposite and feMerge.
\li Added support for animating shapes along paths.
\li Added support for the SVG <symbol> tag.
\endlist
\section2 Qt Serial Port Module
No noteworthy changes.
\section2 Qt Serial Bus Module
No noteworthy changes.
\section2 Qt Sql Module
No noteworthy changes.
\section2 Qt SVG Module
\list
\li Added support for CSS motion path animation through \c offset-path and \c offset-distance.
Note that \c offset-path supports only the path function for defining a path.
\li Added support for CSS animation timing function on an animation as a whole. Currently,
only the predefined keywords are supported (\c linear, \c step-start, \c ease, etc.).
\endlist
\section2 Qt Test Module
\list
\li Added \l{QTest::currentGlobalDataTag()} function to retrieve the name of the
current global test data.
\li Added \l{QTest::defaultTryTimeout} to allow configuring the default timeout
used by the QTRY_* functions.
\li \l QCOMPARE now prints the sign for negative zeroes and NaN values, and
prints NaN payloads.
\li \l QTEST_THROW_ON_FAIL and \l QTEST_THROW_ON_SKIP now work when the QCOMPARE/QSKIP
is invoked from within QtConcurrent.
\li \l {QTest::failOnWarning()} now fails on any message type >= warning, including
critical messages.
\li On \macos, display sleep and App Nap are now unconditionally disabled for
the entire test execution.
\li Updated Callgrind support to Valgrind v3.25.1, adding support for RISCV 64-bit Linux.
\endlist
\section2 Qt VirtualKeyboard Module
\list
\li Qt 6.11 introduces the \l{VirtualKeyboardSettings::}{arrowKeyNavigationEnabled} property in
\l VirtualKeyboardSettings, allowing developers to control whether arrow keys (Left, Right,
Up, Down) and the Return can be used for navigating between keyboard keys when the input
panel is visible. The property default is based on the build-time configuration flag
\c QT_VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION.
\li Added \l{KeyboardStyle::}{keyboardDesignMaximumHeight} property
to \l KeyboardStyle type. Use this to prevent the keyboard overlapping most of the screen.
\endlist
\section2 Qt WebEngine Module
\list
\li Qt WebEngine is now based on Chromium 140.
\li Chromium has added new Rust components which are intended to replace their C++ counterparts.
Qt WebEngine can now be optionally built using these Rust components. This requires
installing a Rust toolchain and configuring with \c{-feature-webengine-rust-build}.
The default behavior is to build with the older C++ components.
\li Added \l{QWebEngineProfile::PersistentCookiesPolicy::}{OnlyPersistentCookies}
policy to prevent session cookies from being saved to disk.
\li Added \l{QWebEngineSettings::}{TrimAccessibilityIdentifiers} setting to force
HTML 'id' attributes to be used as automation IDs for accessibility.
\li Added support for the HTML \c inputmode global attribute.
\li Improved \c fetch() API handling of redirects to cross-origin resources.
\li Removed Pepper Plugin API code.
\endlist
\section2 Qt WebView Module
\list
\li Added C++ bindings for WebView, allowing you to use the module in
Qt Widgets-based applications. The new C++ APIs are released in
Technology Preview status, and may be changed in the future.
\endlist
\section2 Qt Widgets Module
\list
\li QWizard got a new \l{QWizard::StretchBanner}{StretchBanner}
option to stretch the banner across the entire width of
the wizard.
\li QAbstractItemView got a new \l{QAbstractItemView::}{keyboardSearchFlags}
property that allows tuning how the default implementation of
keyboardSearch() matches the given string against the model's data.
\li QColumnView got a new \l{QColumnView::}{previewColumnVisible} property
that specifies whether the preview column is visible.
\li The new QStyleOptionMenuItemV2 class adds a flag that indicates whether
the mouse is pressed on the item getting rendered by the style.
\li QTabBar now emits \l{QTabBar::}{tabCloseRequested} when a tab is middle clicked
if \l{QTabBar::}{tabsClosable} is true.
\endlist
\section2 Qt XML Module
No noteworthy changes.
\section1 Tools
\section2 QDoc Documentation Generator
\list
\li Added comprehensive support for QML singleton types, including a new
\c{\qmlsingletontype} command, automatic detection of the
\c{QML_SINGLETON} macro, and recognition of \c{pragma singleton} in
QML files.
\li QDoc now has full support for QML module aliases (\c{import ... as ...}
syntax), including linking, syntax highlighting for qualified
identifiers, and correct markup for property notation such as
\c{anchors.fill} and attached properties such as
\c{Component.onCompleted}.
\li You can use the new \c{\toc}/\c{\endtoc} and \c{\tocentry} command for
specifying hierarchical table of contents structures in documentation
source files. QDoc generates \c{<project>_toc.xml} files for navigation
sidebars.
\li The \l {overload-command}{\\overload} command now takes an optional
argument. Use the \c{\overload primary} syntax to designate the primary
function in an overload set.
\li QDoc now generates contextual connection examples for overloaded signals
and slots.
\li The \c{includeprivate} configuration variable enables documentation of
private C++ members. Pure virtual functions are now unconditionally
documented.
\li \b{C++20 Concepts}: QDoc now extracts and displays C++20 requires
clauses for function and class templates. Both template-head and
trailing constraint positions are supported.
\li The \l {code-command}{\\code} command now accepts an optional argument
to specify the programming language for the code block. Use "text" to
disable syntax highlighting.
\li The \c{\meta keywords} argument adds custom keywords as HTML \c{<meta>}
elements for search engine optimization and post-processing.
\li Explicit linking to QML attached properties is now supported using the
"attached" link criterion, allowing disambiguation when regular and
attached property names conflict.
\li Template declarations with more than two parameters are now rendered in
a multi-line format for improved readability. The HTML output uses the
\c{template-block} CSS class for custom styling.
\li QDoc now warns about undocumented C++ properties declared with
\c{Q_PROPERTY}, ensuring consistent documentation coverage across all
API elements.
\li QDoc now warns about self-linking in \c{\sa} commands where a document
links to itself.
\li The \c{logwarnings} configuration variable makes QDoc write all warnings
to a \c{<project>-qdoc-warnings.log} file. The new
\c{logwarnings.disablecliargs} sub-option omits CLI arguments from the
log header for portable logs.
\li QDoc warnings now include the project name prefix for multi-module
builds.
\li \b{Configuration Improvements}:
\list
\li \c{codelanguages}: Specifies additional programming languages
accepted in \\code blocks, allowing documentation to include
code in languages without built-in syntax highlighting markers.
\li \c{imagesoutputdir}: Custom output subdirectory for images to
solve file name clashes in multi-module builds.
\li \c{internalfilepatterns}: Automatically marks classes as internal
based on file/path name patterns, such as \c{*_p.h}.
\li \c{projectroot}: Sets the root directory for converting absolute
paths to relative paths in warning logs, improving portability
across build environments. Also available as the
\c{QDOC_PROJECT_ROOT} environment variable.
\endlist
\li Formatting commands now work in \c{\title} arguments, \c{\generatelist}
works correctly in Qt help project TOC structures, and custom enumerator
prefixes are supported in \c{\qmlenum}.
\li The HTML structure for QML and C++ member documentation is unified. This
change introduces new CSS classes (\c{qml-member}, \c{qml-property},
\c{qml-method}, \c{qml-property-group}) in QDoc's HTML output.
\li \b{Code Parsing}: Improved scoped enum resolution, QML inheritance
handling with cycle detection, and correct preservation of declared
types and variable information in index files.
\li Added LLVM/Clang 21 compatibility, with minimum supported version
updated to 17.0.6.
\li The \c{\tableofcontents} command is officially deprecated.
\endlist
\section2 Qt Linguist
\list
\li Added \e{labels} as a way to categorize ID-based translations into
meaningful groups without affecting the runtime behavior. See the
\l{Text ID based translations} documentation and the
{blog post} for more details.
\li Added new i18n examples to the documentation.
\li Added AI translation for Qt Linguist for automatic translations using
LLMs. See the \l{AI translation} documentation and the
{blog post} for more details.
\li Added ltext2id executable for migrating projects from text-based
translation to ID-based translation. See \l{Using ltext2id} for more
details
\li Added lcheck executable for performing batch validation on TS files.
See \l{Using lcheck} for more details.
\li Added support for C++ attributes in lupdate parser
\li Deprecated use of //= metastrings in lupdate parser.
\li Deprecated \c {lupdate -pro} option for processing .pro files directly.
Use \c {lupdate-pro} instead.
\li Removed lprodump executable. Its functionality is now available via
the \c {lupdate-pro -dump-json} option.
\endlist
\section1 Platform Changes
\section2 Build System Changes
\list
\li Added a -generate-vcpkg-manifest configure option. This generates a
vcpkg.json file in the build directory. To just generate the
manifest without configuring Qt, run configure with
-generate-vcpkg-manifest -dry-run.
\li When configuring with -vcpkg, generate a vcpkg manifest file in the
build directory, and set VCPKG_MANIFEST_DIR to the build directory to
use that manifest file. You can turn off the manifest generation with
-no-generate-vcpkg-manifest. You can turn off setting the manifest
directory by passing \c{-- -UVCPKG_MANIFEST_DIR} to configure.
\li Added support for generating \l{Software Bill of Materials}{CycloneDX}
SBOM documents in addition to the existing SPDX format. To enable
CycloneDX generation, configure Qt with
\c{-sbom -sbom-cyclonedx-v1_6 -sbom-cyclonedx-v1_6-required}.
\endlist
\section2 Desktop Platforms
\section3 Windows
\list
\li Added support and detection of Windows 11 25H2 (Build 10.0.26200) via
\l{QOperatingSystemVersion::Windows11_25H2}{QOperatingSystemVersion}.
\li There are various accessibility improvements to top-level windows and focus.
\li Improved refresh rate update handling.
when using Visual Studio 2026. To use this configuration add \c{/arm64EC} to \c{CFLAGS} as
well as \c{/arm64EC} and \c{/d2arm64ECMarkAllFuncsPatchable} to your \c{CXXFLAGS}
environment variables on your Windows on ARM machine and configure and build Qt as you
normally do.
\endlist
\section3 Linux
\list
\li The Wayland plugin gained server-side key repeat, preference for server-side decorations,
experimental support for \c{xx-session-management-v1}, and numerous stability fixes
(popups, scrolling, offscreen surfaces, clipboard).
\li The legacy X11 native painting engine (XRender) for XCB was removed. Use of this engine
required enabling it at compile time with a CMake option (\c{-xcb-native-painting})
and enabling at runtime with the \c QT_XCB_NATIVE_PAINTING environment variable.
\li Accessibility was enhanced by adding support for the AT-SPI Collection
interface, which provides a more efficient mechanism for retrieving accessible
objects within an application’s accessibility hierarchy. This interface also
enables browse mode support in the Orca screen reader.
\li XKB: key mapping was extended for \l Qt::Key_Call / \l Qt::Key_Hangup.
\endlist
\section3 macOS
\list
\li Sandboxed applications can now access files outside of the application
sandbox (so called security scoped resources) for both reading and writing.
Files or folders chosen by the user via file dialogs or similar native mechanism
are automatically and transparently handled, including persistent access across
application and device restarts.
\li Added \l QNativeInterface::QCocoaScreen for accessing the underlying NSScreen.
\li Converting between CGImageRef and QImage now supports a wider
range of image formats, including \l QImage::Format_RGB30 and
floating-point formats important for HDR content.
\li The Apple icon engine now respects the layout direction of the
painter, producing RTL-specific icons if available in the
SF Symbols icon set.
\li File paths selected via native open/save panels are now NFC
normalized, ensuring consistent file name comparisons regardless
of whether the filesystem stores names in NFD form.
\endlist
\section2 Mobile Platforms
\section3 Android
\section4 Qt for Android
\list
\li Qt Jenny now supports implementing Java interfaces and extending Java classes in C++.
\li Support for Play Store's Feature Delivery.
\li Support for Android 16.
\li Updated to Gradle 9.3.1 and Android Gradle Plugin 9.0.0.
\li Updated to JDK 21 LTS and bumped compatibility to JDK 17 LTS.
\endlist
\section4 Qt Quick for Android
\list
\li Added QtQuickView.invokeMethod() for calling QML functions from Java/Kotlin.
\li Support for registering signals before QML View is loaded.
\endlist
\section3 iOS
\list
\li Added support for file icons in the platform theme.
\li Added support for QFileOpenEvent for external requests to open files.
\li Sandboxed applications can now access files outside of the application
sandbox (so called security scoped resources) for both reading and writing.
Files or folders chosen by the user via file dialogs or similar native mechanism
are automatically and transparently handled, including persistent access across
application and device restarts.
\li Added support for native save dialogs.
\endlist
\section2 Embedded Platforms
\section3 Linux
\list
\li EGLFS/KMS now supports hot-plug and hot-reload of displays at runtime (guarded by
\c QT_QPA_EGLFS_HOTPLUG_ENABLED environment variable).
\li A new ConnMan-based \l QNetworkInformation backend was added.
\li DirectFB: Qt::Key_Call mapping was added.
\endlist
\section3 Boot to Qt
\list
\li New \l{embedded-platforms-tier2}{Tier 2 Platforms}:
\list
\li NXP i.MX 8M Plus LDDPR4 EVK
\li Toradex i.MX 95 Verdin
\li Qualcomm RB3 Gen2 Vision Kit
\endlist
\endlist
\section2 Web Platforms
\section3 WebAssembly
\list
\li \l{Qt Positioning} got a backend for the GeoLocation API.
\li Use the new \c wasmdeployqt tool to deploy and ship dynamically linked
\l{Qt for WebAssembly} applications. This replaces the previous
\c preload_qt_plugins.py and \c preload_qml_imports.py Python scripts.
\endlist
\section1 List of API Changes
These pages contain an overview of API changes in Qt 6.11:
\list
\li \l {New Classes and Functions in Qt 6.11}
\li \l {Obsolete Classes}
\endlist
\section1 Known Issues
For information about known issues in Qt 6.11, see
*/
/*!
\page newclasses611.html
\title New Classes and Functions in Qt 6.11
\ingroup whatsnewqt6-api
\meta sortkey 611
\brief A list of new APIs in Qt 6.11.
This page contains a comprehensive list of all new classes and functions
introduced in Qt 6.11.
\sincelist 6.11
*/