What's New in Qt 6.12
New and Restored Modules in Qt 6.12
Qt 6.12 adds the following modules and tools:
New Features in Qt 6.12
Qt Bluetooth Module
- The Android backend now respects the advertising minimum and maximum interval parameters provided via QLowEnergyAdvertisingParameters when starting the BTLE advertising.
Qt Canvas Painter Module
- The Qt Canvas Painter module is moving out of Technology Preview state, and is now fully maintained (supported).
- The module gained QtCanvas2D, a new QML API backed by Qt Canvas Painter. This API remains in technology preview.
- QCanvasPath gained an addPath() overload for parsing SVG path strings directly.
- QCanvasPainter gained QCanvasPainter::FillRule and QCanvasPainter::setFillRule() to support the EvenOdd fill rule for path fills.
- QCanvasGradient gained setImage() to create gradients directly from an image.
- QCanvasRadialGradient gained constructors and setInnerCenterPosition() / setOuterCenterPosition() to support non-symmetric (two-center) radial gradients.
Qt Core Module
- QRangeModel's RowOptions and ItemAccess customization points were extended to support
headerData(), and per-row and per-itemflags(). QRangeModel gained drag'n'drop handling support with custom and type-safe mime type handling in both customization points, and with supportedDragActions and supportedDropActions properties. QRangeModel now also implements sort() with support of a sortCollator for locale-aware sorting, and match() for fast content matching. - Added qSharedPointerStaticCast as a new free function for static casts of QSharedPointer.
- QSortFilterProxyModel gained the DataChangeRelevance enum and the virtual dataChangeRelevances() method, allowing subclasses to control whether a source
dataChangedsignal triggers re-filtering or re-sorting. - The new QAbstractItemModel::compareData() is a new protected API for comparing two QVariants in a way that is specifically designed for item view use cases.
- qfloat16 gained increment and decrement operators and a unary operator+.
- QVariant gained constructors from rvalue references.
- QMap and QMultiMap now implement all six relational operators.
- QVarLengthArray gained removeAt(), matching the QList API.
- QTimeZone now accepts CLDR-canonical IANA alias IDs in its constructor and in isTimeZoneIdAvailable(). QTimeZone::availableTimeZoneIds() now includes those aliases.
- QFile::copy() now accepts an optional QFileDevice::Permissions argument. QSaveFile now defers applying the requested permissions until commit().
- Qt::compareThreeWay() gained an overload for
std::pair. - QCalendarPermission gained a WriteOnly access mode.
- QFileSystemWatcher can now use
inotifyon FreeBSD 15 and later. - QStandardPaths on macOS now includes the system-wide
/Library/Preferencesdirectory in standardLocations(). On iOS, PublicShareLocation returns the correct path and TemplatesLocation is properly reported as unsupported. - QEasingCurve gained cubicBezier(), a convenience helper for creating cubic Bezier easing curves.
- QJsonObject gained cbegin() and cend() STL-style const iterators. QJsonDocument gained rvalue constructors from QJsonArray and QJsonObject.
Qt D-Bus Module
Qt Graphs Module
- Qt Canvas Painter can now be used as a rendering backend for 2D graphs. Enable it at configure time with the
-feature-graphs-2d-high-performance-backendconfigure flag. - Added QLogValueAxis (LogValueAxis in QML), a new logarithmic axis type for 2D graphs.
- QXYSeries gained declarativePoints, declarativePointHint, declarativeMin, and stepSize properties for declarative data input from QML.
- QPieSeries gained sliceData and sliceLabels properties for declarative data input from QML.
- QValueAxis and QLogValueAxis gained a labelPostFormat property for customizing axis label text.
- Q3DGraphsWidgetItem gained panEnabled and panModeEnabled properties to enable panning in 3D graphs.
- QDateTimeAxis gained a tickCount property.
Qt GRPC Module
- Added client-side request compression. The new QtGrpc::CompressionAlgorithm enum can be selected through QGrpcChannelOptions::setRequestCompression() and QGrpcCallOptions::setRequestCompression() to compress outgoing messages.
- Added supportedCompressionAlgorithms(), acceptedCompressionAlgorithms() and setAcceptedCompressionAlgorithms() to QGrpcChannelOptions to control which compression algorithms the client advertises in the
grpc-accept-encodingrequest header and is willing to accept in server responses. - Added maximumReceiveMessageSize() and setMaximumReceiveMessageSize() to QGrpcChannelOptions and QGrpcCallOptions to bound the size of incoming messages.
Qt GUI Module
- Added indirect rendering support to QRhi. Buffers of type
IndirectDrawBuffercan now be created, and indirect draw calls issued via QRhiCommandBuffer. - QRhi gained the ShaderDrawParameters feature flag to query support for shader draw parameter built-ins (e.g.
gl_DrawID). - The QRhi Vulkan backend now uses
VK_EXT_device_faultto report additional details on device loss. - QAccessibilityHints gained a motionPreference property for reduced-motion accessibility preferences.
- QStyleHints gained toolTipWakeUpDelay, allowing applications to query or adjust the delay before a tooltip appears.
- QImageReader gained effectiveSize(), which returns the image size respecting autoTransform().
- QTextCursor::deletePreviousChar() (Backspace) now correctly handles multi-code-unit emoji sequences.
- On Android, pressing the back key now calls
moveTaskToBack()instead of exiting the application. - Added Qt::InputMethodHint::ImhNoFullscreen to request that the input method does not occupy the full screen.
Qt HTTP Server Module
- QHttpServerConfiguration gained setMaximumConnections() to limit the total number of simultaneous connections, and setMaximumConnectionsPerHost() to limit connections per IP address.
Qt Lottie Animation Module
- Added support for the Lottie text layer, including glyph path rendering.
- Added support for animated dimensions in Lottie ellipse, rectangle, and polystar shape elements, as well as gradient strokes, layer masks, and the layer Auto Orient feature.
- Added support for the Lottie time remapping and time stretching features.
- Introduced LottieVectorImageController for controlling Lottie animation playback in a VectorImage. The type exposes currentFrame, frameRate, startFrame, and endFrame properties, along with playback methods such as play(), pause(), and gotoAndPlay().
Qt Multimedia Module
Qt Network Module
- Introduced QSslKeyingMaterial and QSslConfiguration::keyingMaterial() / setKeyingMaterial() to expose TLS keying material exporters (RFC 5705).
- QHostInfo gained clearCache() to flush the DNS result cache programmatically.
- QHttpHeaders gained QDataStream stream operators, rangeValues() for parsing the
Rangeheader, and setRangeValues() for setting it. The new QHttpHeaderRange class represents a single byte range within that header.
Qt Positioning Module
- QGeoSatelliteInfo::SatelliteSystem gained entries for the IRNSS and SBAS satellite systems.
Qt Protobuf Module
- Qt properties in the generated message classes are now marked with the FINAL modifier by default. This enables QML tooling to apply performance optimizations and generate more efficient code. Use the new option
GENERATE_NON_FINAL_PROPERTIESof qt_add_protobuf() to revert to the old behavior.
Qt Qml Module
- Added new method insertRow to QQmlTreemodel to insert rows into specific positions in the model.
- Added new method moveRows to QQmlTreemodel to rearrange the structure of the model.
Qt Quick Module
- Added strokeGradient property to ShapePath.
Qt Quick Controls Module
- Added the
QtQuick.Controls.Nativestyle.import QtQuick.Controls.Nativechooses the best-suited style for the platform you compile for at compile time. It therefore combines the benefits of compile-time style selection with the possibility to have a platform-specific look-and-feel for your application. - ToolTip gained a policy property to control automatic tooltip visibility.
- ComboBox gained a highlightOnHover property.
- RangeSlider gained a crossingEnabled property to allow or prevent the two handles from crossing each other.
- Menu gained a separatorsCollapsible property.
- MenuItem now displays the keyboard shortcut from an associated Action.
- SearchField now allows navigation with keys if its TextInput is empty.
- A subset of the existing TextField APIs were added to SearchField for convenience: selectTextByMouse, selectedText, selectionStart, selectionEnd, cursorPosition, select(), selectWord(), and deselect().
Qt Quick Dialogs Module
Qt Quick Effects Module
Qt Quick Test Module
- TestCase's optional property is deprecated in Qt Quick Test. Use skip() instead.
Qt Quick 3D Module
Qt Quick 3D XR Module
Qt Quick 3D Physics Module
Qt Quick VectorImage Module
- Added asynchronous property for loading vector image.
- Added status property for tracking the progress of loading the image.
- Added retainWhileLoading to be used in combination with
asynchronous. - Added generatedItem property for accessing the generated subtree.
Qt Serial Port Module
Qt Serial Bus Module
Qt Sql Module
Qt SVG Module
Qt Test Module
- Benchmark results now include variance and standard deviation across measurement backends (time, CPU ticks, events, Valgrind).
- The plain-text benchmark logger now formats floating-point results using scientific notation for consistency.
- When non-existent test functions are specified on the command line alongside valid ones, the valid tests are still executed.
Qt VirtualKeyboard Module
Qt WebEngine Module
Qt WebView Module
Qt Widgets Module
- QTreeView gained QTreeView::itemDecorationRect(), which returns the bounding rectangle of the decoration (icon) for a given index.
- QStyle::StandardPixmap gained QStyle::SP_TabScrollLeftButton, QStyle::SP_TabScrollRightButton, QStyle::SP_TabScrollUpButton, and QStyle::SP_TabScrollDownButton for tab bar scroll buttons.
- QDialogButtonBox gained QDialogButtonBox::standardButtonText() and QDialogButtonBox::standardButtonShortcut(), which return the text and the shortcut of a QDialogButtonBox::StandardButton respectively.
- On macOS, QMainWindow's unified title and toolbar mode has been modernized to use effect views for background styling.
Qt XML Module
Qt MQTT Module
Tools
QDoc Documentation Generator
Qt Linguist
Platform Changes
Build System Changes
Desktop Platforms
Windows
Linux
macOS
Wayland Client on Linux
Mobile Platforms
Android
Qt for Android
- Added multi-ABI support for Feature Delivery projects.
Qt Quick for Android
iOS
Embedded Platforms
Boot to Qt
Real-Time Operating Systems
Modules Deprecated in Qt 6.12
The following modules are deprecated. We strongly advise against using them in new code.
For more information about the life-cycle of modules in Qt, see QUIP-14.
List of API Changes
These pages contain an overview of API changes in Qt 6.12:
Known Issues
For information about known issues in Qt 6.12 see the Qt Wiki.
© 2026 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.