New Classes and Functions in Qt 6.12 | Qt 6.12
Description: A list of new APIs in Qt 6.12.

- Qt 6.12
- New Classes and Functions in Qt 6.12
- Qt 6.12.0 Reference Documentation

# New Classes and Functions in Qt 6.12

This page contains a comprehensive list of all new classes and functions introduced in Qt 6.12.

- New Classes
- New Member Functions
- New Global Functions
- New Macros
- New Enum Types
- New Enum Values
- New Properties
- New QML Types
- New QML Enumeration Types
- New QML Properties
- New QML Signals
- New QML Methods

### New Classes

A
  QAbstractObjectRegistryRef
  QAccessibleViewportInterface

L
  QLogValueAxis

M
  QMultiObjectRegistryRef

O
  QObjectRegistryRef

R
  QRhiIndexedIndirectDrawCommand
  QRhiIndirectDrawCommand

S
  QSslKeyingMaterial
  QStyleKitStyle

### New Member Functions

Class Q3DGraphsWidgetItem:

`(since 6.12)` void | setPanButton(Qt::MouseButtons button)

Class QAbstractItemModel:

`(since 6.12)` Qt::weak_ordering | compareData(const QVariant &left, const QVariant &right, const QCollator *collator = nullptr)

Class QAccessibleInterface:

`(since 6.12)` QAccessibleViewportInterface * | viewportInterface()

Class QAudioSink:

`(since 6.12)` int | nativePeriodFrameCount() const
`(since 6.12)` void | setNativePeriodFrameCount(int frameCount)

Class QAudioSource:

`(since 6.12)` int | nativePeriodFrameCount() const
`(since 6.12)` void | setNativePeriodFrameCount(int frameCount)

Class QCanvasGradient:

`(since 6.12)` void | addColorStop(float position, const QColor &color)
`(since 6.12)` void | setImage(const QCanvasImage &image, int index = 0)

Class QCanvasPainter:

`(since 6.12)` void | fill(QCanvasPainter::FillRule fillRule)
`(since 6.12)` void | fill(const QCanvasPath &path, QCanvasPainter::FillRule fillRule, int pathGroup = -1)
`(since 6.12)` void | setFillRule(QCanvasPainter::FillRule fillRule)

Class QCanvasPath:

`(since 6.12)` void | addPath(QStringView svgPath, const QTransform &transform = QTransform())

Class QCanvasRadialGradient:

`(since 6.12)` QPointF | innerCenterPosition() const
`(since 6.12)` QPointF | outerCenterPosition() const
`(since 6.12)` void | setInnerCenterPosition(float x, float y)
`(since 6.12)` void | setInnerCenterPosition(QPointF center)
`(since 6.12)` void | setOuterCenterPosition(float x, float y)
`(since 6.12)` void | setOuterCenterPosition(QPointF center)

Class QDialogButtonBox:

`(since 6.12)` QKeySequence | standardButtonShortcut(QDialogButtonBox::StandardButton button)
`(since 6.12)` QString | standardButtonText(QDialogButtonBox::StandardButton button)

Class QEasingCurve:

`(since 6.12)` QEasingCurve | cubicBezier(const QPointF &c1, const QPointF &c2)

Class QGrpcCallOptions:

`(since 6.12)` std::optional<quint64> | maximumReceiveMessageSize() const
`(since 6.12)` std::optional<QtGrpc::CompressionAlgorithm> | requestCompression() const
`(since 6.12)` QGrpcCallOptions & | setMaximumReceiveMessageSize(quint64 size)
`(since 6.12)` QGrpcCallOptions & | setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)

Class QGrpcChannelOptions:

`(since 6.12)` QtGrpc::CompressionAlgorithms | acceptedCompressionAlgorithms() const
`(since 6.12)` std::optional<quint64> | maximumReceiveMessageSize() const
`(since 6.12)` std::optional<QtGrpc::CompressionAlgorithm> | requestCompression() const
`(since 6.12)` QGrpcChannelOptions & | setAcceptedCompressionAlgorithms(QtGrpc::CompressionAlgorithms algorithms)
`(since 6.12)` QGrpcChannelOptions & | setMaximumReceiveMessageSize(quint64 size)
`(since 6.12)` QGrpcChannelOptions & | setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)
`(since 6.12)` QtGrpc::CompressionAlgorithms | supportedCompressionAlgorithms()

Class QHostInfo:

`(since 6.12)` void | clearCache()

Class QHttpHeaders:

`(since 6.12)` QDataStream & | operator<<(QDataStream &out, const QHttpHeaders &headers)
`(since 6.12)` QDataStream & | operator>>(QDataStream &in, QHttpHeaders &headers)
`(since 6.12)` QList<QHttpHeaderRange> | rangeValues(bool *ok = nullptr) const
`(since 6.12)` void | setRangeValues(QSpan<const QHttpHeaderRange> ranges)

Class QHttpServerConfiguration:

`(since 6.12)` quint32 | maximumConnections() const
`(since 6.12)` quint32 | maximumConnectionsPerHost() const
`(since 6.12)` void | setMaximumConnections(quint32 maxConnections)
`(since 6.12)` void | setMaximumConnectionsPerHost(quint32 maxConnections)

Class QJsonObject:

`(since 6.12)` QJsonObject::const_iterator | cbegin() const
`(since 6.12)` QJsonObject::const_iterator | cend() const

Class QMap:

`(since 6.12)` bool | operator<(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
`(since 6.12)` bool | operator<=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
`(since 6.12)` auto | operator<=>(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
`(since 6.12)` bool | operator>(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
`(since 6.12)` bool | operator>=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)

Class QMultiMap:

`(since 6.12)` bool | operator<(const QMultiMap<Key, T> &lhs, const QMultiMap<Key, T> &rhs)
`(since 6.12)` bool | operator<=(const QMultiMap<Key, T> &lhs, const QMultiMap<Key, T> &rhs)
`(since 6.12)` auto | operator<=>(const QMultiMap<Key, T> &lhs, const QMultiMap<Key, T> &rhs)
`(since 6.12)` bool | operator>(const QMultiMap<Key, T> &lhs, const QMultiMap<Key, T> &rhs)
`(since 6.12)` bool | operator>=(const QMultiMap<Key, T> &lhs, const QMultiMap<Key, T> &rhs)

Class QObject:

`(since 6.12)` bool | disconnect(QMetaObject::Connection &connection)
`(since 6.12)` bool | disconnect(QMetaObject::Connection &&connection)

Class QQmlComponent:

`(since 6.12)` void | setData(const QByteArray &data, const QUrl &url, QQmlComponent::CompilationMode compilationMode)

Class QQmlEngine:

`(since 6.12)` bool | setExternalSingletonInstance(QAnyStringView moduleName, QAnyStringView typeName, QObject *instance)

Class ItemAccess:

`(since 6.12)` bool | canDropMimeData(const QMimeData *data)
`(since 6.12)` bool | canDropMimeData(const QMimeData *data, int action, int row, int column, const QModelIndex &parent)
`(since 6.12)` auto | dropMimeData(const QMimeData *data, auto inserter)
`(since 6.12)` auto | dropMimeData(const QMimeData *data, int action, int row, int column, const QModelIndex &parent, auto inserter)
`(since 6.12)` Qt::ItemFlags | flags(const T &item)
`(since 6.12)` QMimeData * | mimeData(const QModelIndex &range)
`(since 6.12)` QMimeData * | mimeData(const auto &range)
`(since 6.12)` QStringList | mimeTypes()

Class RowOptions:

`(since 6.12)` bool | canDropMimeData(const QMimeData *data)
`(since 6.12)` bool | canDropMimeData(const QMimeData *data, int action, int row, int column, const QModelIndex &parent)
`(since 6.12)` auto | dropMimeData(const QMimeData *data, auto inserter)
`(since 6.12)` auto | dropMimeData(const QMimeData *data, int action, int row, int column, const QModelIndex &parent, auto inserter)
`(since 6.12)` Qt::ItemFlags | flags(const T &row)
`(since 6.12)` QVariant | headerData(int section, int role)
`(since 6.12)` QMimeData * | mimeData(const QModelIndex &range)
`(since 6.12)` QMimeData * | mimeData(const auto &range)
`(since 6.12)` QStringList | mimeTypes()

Class QRhiCommandBuffer:

`(since 6.12)` void | drawIndexedIndirect(QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset, quint32 drawCount, quint32 stride = sizeof(QRhiIndexedIndirectDrawCommand))
`(since 6.12)` void | drawIndirect(QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset, quint32 drawCount, quint32 stride = sizeof(QRhiIndirectDrawCommand))

Class QRhiTextureRenderTargetDescription:

`(since 6.12)` int | depthLayer() const
`(since 6.12)` void | setDepthLayer(int depthLayer)

Class QShaderVersion:

`(since 6.12)` size_t | qHash(QShaderVersion key, size_t seed)

Class QSharedPointer:

`(since 6.12)` QSharedPointer<X> | qSharedPointerStaticCast(const QSharedPointer<T> &other)
`(since 6.12)` QSharedPointer<X> | qSharedPointerStaticCast(QSharedPointer<T> &&other)
`(since 6.12)` QSharedPointer<X> | qSharedPointerStaticCast(const QWeakPointer<T> &other)

Class QSortFilterProxyModel:

`(since 6.12)` QSortFilterProxyModel::DataChangeRelevances | dataChangeRelevances(const QModelIndex &sourceTopLeft, const QModelIndex &sourceBottomRight, const QList<int> &roles) const

Class QSslConfiguration:

`(since 6.12)` QList<QSslKeyingMaterial> | keyingMaterial() const
`(since 6.12)` std::optional<QSslKeyingMaterial> | keyingMaterial(const QSslKeyingMaterial &material) const
`(since 6.12)` void | setKeyingMaterial(const QList<QSslKeyingMaterial> &keyMaterial)

Class QTreeView:

`(since 6.12)` QRect | itemDecorationRect(const QModelIndex &index) const

Class QVarLengthArray:

`(since 6.12)` void | removeAt(qsizetype i)

Class QVector2D:

`(since 6.12)` size_t | qHash(QVector2D key, size_t seed = 0)

Class QVector3D:

`(since 6.12)` size_t | qHash(QVector3D key, size_t seed = 0)

Class QVector4D:

`(since 6.12)` size_t | qHash(QVector4D key, size_t seed = 0)

Class QWebEngineProfile:

`(since 6.12)` void | setCryptoModulePasswordFunction(std::function<std::string (std::string, std::string, bool)> passwordFunction)

Class QWindow:

`(since 6.12)` void | setFramePosition(int x, int y)

### New Global Functions

`(since 6.12)` auto | compareThreeWay(const std::pair<T1, T2> &lhs, const std::pair<U1, U2> &rhs)

### New Macros

`(since 6.12)` | QT_NO_DISCONNECT_CONST_CONNECTION
`(since 6.12)` | Q_DECL_NONALLOCATING_FUNCTION
`(since 6.12)` | Q_DECL_NONBLOCKING_FUNCTION

### New Enum Types

`(since 6.12)` enum class | FillRule { NonZero, EvenOdd }
`(since 6.12)` enum class | Status { Null, Searching, Finished }
`(since 6.12)` enum | MutabilityGroup { AutoMutabilityGroup, StaticMutabilityGroup, ModerateMutabilityGroup, DynamicMutabilityGroup }
`(since 6.12)` enum class | DropOperation { DontDrop, Automatic, OverwriteAndIgnore, OverwriteAndExtend, InsertAsSiblings, InsertAsChildren }
`(since 6.12)` enum class | DataChangeRelevance { NotRelevant, RelevantForFiltering, RelevantForSorting, RelevantForFilteringAndSorting }
`(since 6.12)` enum class | MotionPreference { NoPreference, ReducedMotion }
`(since 6.12)` enum class | CompressionAlgorithm { Identity, Deflate, Gzip }

### New Enum Values

enum value | InterfaceType::ViewportInterface
enum value | SatelliteSystem::IRNSS
enum value | SatelliteSystem::SBAS
enum value | StandardPixmap::SP_TabScrollDownButton
enum value | StandardPixmap::SP_TabScrollLeftButton
enum value | StandardPixmap::SP_TabScrollRightButton
enum value | StandardPixmap::SP_TabScrollUpButton

### New Properties

`(since 6.12)` panEnabled : bool `(since 6.12)` panModeEnabled : bool `(since 6.12)` motionPreference : Qt::MotionPreference `(since 6.12)` tickCount : qreal `(since 6.12)` status : Status `(since 6.12)` mutabilityGroup : int `(since 6.12)` sortCollator : QCollator `(since 6.12)` sortRole : int `(since 6.12)` supportedDragActions : Qt::DropActions | `(since 6.12)` supportedDropActions : Qt::DropActions `(since 6.12)` frameRate : std::optional<qreal> `(since 6.12)` toolTipWakeUpDelay : int `(since 6.12)` userInitiated : const bool `(since 6.12)` frameRate : std::optional<qreal> `(since 6.12)` declarativeMin : qreal `(since 6.12)` declarativePointHint : DeclarativePointHint `(since 6.12)` declarativePoints : QVariantList `(since 6.12)` stepSize : qreal

### New QML Types

A
  AbstractObjectRegistryRef
  AllOfFilter
  AnyOfFilter

B
  boxgradient2d
  boxshadow2d

C
  Canvas2D
  Canvas2DContext
  Color
  conicalgradient2d

D
  DistanceJoint

F
  FixedJoint

G
  gridpattern2d

I
  imagepattern2d

L
  lineargradient2d
  LogValueAxis
  LottieVectorImageController

M
  MultiObjectRegistryRef

O
  ObjectRegistry
  ObjectRegistryRef

P
  path2d
  PhysicsJoint
  PrismaticJoint

Q
  qmlProperty
  QuadTextureProvider

R
  radialgradient2d
  RangeFilter
  RegExpFilter
  RevoluteJoint

S
  SkyMaterial
  SphericalJoint
  string

T
  transform2d

### New QML Enumeration Types

`(since 6.12)` | FinishBehavior

### New QML Properties

QML Type Accessible:

`(since 6.12)` | expandable : bool
`(since 6.12)` | expanded : bool

QML Type AnimatedImage:

`(since 6.12)` | finishBehavior : enumeration
`(since 6.12)` | loops : int

QML Type DateTimeAxis:

`(since 6.12)` | tickCount : real

QML Type DistanceJoint:

`(since 6.12)` | maxDistance : real
`(since 6.12)` | minDistance : real

QML Type ExtendedSceneEnvironment:

`(since 6.12)` | ssrMaxSteps : int
`(since 6.12)` | ssrThickness : real

QML Type FolderListModel:

`(since 6.12)` | showDot : bool
`(since 6.12)` | showDotDot : bool

QML Type GraphsItem3D:

`(since 6.12)` | panEnabled : bool
`(since 6.12)` | panModeEnabled : bool

QML Type Item:

`(since 6.12)` | mutabilityGroup : int

QML Type LottieAnimation:

`(since 6.12)` | currentFrame : int

QML Type Model:

`(since 6.12)` | instancingLodFactor : real

QML Type PhysicsJoint:

`(since 6.12)` | bodyA : PhysicsBody*
`(since 6.12)` | bodyB : PhysicsBody*
`(since 6.12)` | orientationA : quaternion
`(since 6.12)` | orientationB : quaternion
`(since 6.12)` | positionA : vector3d
`(since 6.12)` | positionB : vector3d

QML Type PieSeries:

`(since 6.12)` | sliceData : list<real>
`(since 6.12)` | sliceLabels : list<string>

QML Type PrismaticJoint:

`(since 6.12)` | lowerLimit : real
`(since 6.12)` | upperLimit : real

QML Type QuadTextureProvider:

`(since 6.12)` | format : enumeration
`(since 6.12)` | fragmentShader : url
`(since 6.12)` | fragmentShaderCode : string
`(since 6.12)` | height : int
`(since 6.12)` | width : int

QML Type RevoluteJoint:

`(since 6.12)` | angularLimitLower : real
`(since 6.12)` | angularLimitUpper : real
`(since 6.12)` | enableAngularLimit : bool

QML Type SceneEnvironment:

`(since 6.12)` | skyMaterial : QtQuick3D::SkyMaterial

QML Type ScreenCapture:

`(since 6.12)` | frameRate : real

QML Type SearchField:

`(since 6.12)` | cursorPosition : int
`(since 6.12)` | placeholderText : string
`(since 6.12)` | selectTextByMouse : bool
`(since 6.12)` | selectedText : string
`(since 6.12)` | selectionEnd : int
`(since 6.12)` | selectionStart : int

QML Type ShapePath:

`(since 6.12)` | strokeGradient : ShapeGradient

QML Type SkyMaterial:

`(since 6.12)` | enableIBL : bool
`(since 6.12)` | fragmentShader : url
`(since 6.12)` | fragmentShaderCode : string
`(since 6.12)` | iblRenderFrames : int
`(since 6.12)` | iblSampleCount : int
`(since 6.12)` | radianceMapSize : int

QML Type SphericalJoint:

`(since 6.12)` | coneLimitY : real
`(since 6.12)` | coneLimitZ : real
`(since 6.12)` | enableConeLimit : bool

QML Type ToolTip:

`(since 6.12)` | policy : enumeration

QML Type VectorImage:

`(since 6.12)` | asynchronous : bool
`(since 6.12)` | generatedItem : Item
`(since 6.12)` | retainWhileLoading : bool
`(since 6.12)` | status : enumeration

QML Type WebEngineNavigationRequest:

`(since 6.12)` | userInitiated : bool

QML Type WindowCapture:

`(since 6.12)` | frameRate : real

QML Type XYSeries:

`(since 6.12)` | declarativePoints : list<variant>

### New QML Signals

`(since 6.12)` | finished()
`(since 6.12)` | sliceDataChanged(list<real> sliceData)
`(since 6.12)` | sliceLabelsChanged(list<string> sliceLabels)
`(since 6.12)` | tickCountChanged(real count)

### New QML Methods

QML Type GraphsItem3D:

`(since 6.12)` void | setPanButton(Qt::MouseButtons button)

QML Type Qt:

`(since 6.12)` string | escapeHtml(string data)

QML Type RuntimeLoader:

`(since 6.12)` Object3D | query(string arg)
`(since 6.12)` List<Object3D> | queryAll(QueryFilter filter)

QML Type SearchField:

`(since 6.12)` void | deselect()
`(since 6.12)` void | select(int start, int end)
`(since 6.12)` void | selectAll()
`(since 6.12)` void | selectWord()

QML Type TreeModel:

`(since 6.12)` void | insertRow(int rowIndex, object row)
`(since 6.12)` void | insertRow(int rowIndex, QModelIndex parent, object row)
`(since 6.12)` bool | moveRows(QModelIndex sourceParent, int sourceRow, int count, QModelIndex destinationParent, int destinationChild)