- Qt 6.9
- New Classes and Functions in Qt 6.8
- Qt 6.9.1 Reference Documentation

# New Classes and Functions in Qt 6.8

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

- New Namespaces
- New Classes
- New Member Functions
- New Functions in Namespaces
- New Macros
- New Enum Types
- New Enum Values
- New Type Aliases
- New Properties
- New Variables
- New QML Types
- New QML Properties
- New QML Signals
- New QML Methods

### New Namespaces

`(since 6.8)` namespace | QtJniTypes

### New Classes

A
  QAbstractVideoBuffer
  QAccessibleAnnouncementEvent
  QAccessibleAttributesInterface
  QAudioBufferInput
  QAudioBufferOutput

C
  const_iterator (QDirListing)
  QChronoTimer

D
  QDirListing
  QDnsTlsAssociationRecord

F
  QFormDataBuilder
  QFormDataPartBuilder

G
  QGrpcSerializationFormat

H
  QHelpSearchEngineCore
  QHttpServerWebSocketUpgradeResponse

J
  QJniArray
  QJniArrayBase

O
  QOAuthUriSchemeReplyHandler

P
  QPdfOutputIntent
  QProtobufRepeatedIterator

S
  sentinel (QDirListing)

T
  ThrowOnFailDisabler (QTest)
  ThrowOnFailEnabler (QTest)
  ThrowOnSkipDisabler (QTest)
  ThrowOnSkipEnabler (QTest)
  totally_ordered_wrapper (Qt)

V
  QVideoFrameInput
  ViewFormat (QRhiTexture)

W
  QWebEngineClientHints
  QWebEngineFrame
  QWebEnginePermission

### New Member Functions

Class QAbstractEventDispatcher:

`(since 6.8)` void | registerTimer(Qt::TimerId timerId, QAbstractEventDispatcher::Duration interval, Qt::TimerType timerType, QObject *object)
`(since 6.8)` Qt::TimerId | registerTimer(QAbstractEventDispatcher::Duration interval, Qt::TimerType timerType, QObject *object)
`(since 6.8)` QList<QAbstractEventDispatcher::TimerInfoV2> | timersForObject(QObject *object) const
`(since 6.8)` bool | unregisterTimer(Qt::TimerId timerId)

Class QAbstractGrpcChannel:

`(since 6.8)` void | setChannelOptions(QGrpcChannelOptions &&options)
`(since 6.8)` void | setChannelOptions(const QGrpcChannelOptions &options)

Class QAbstractHttpServer:

`(since 6.8)` void | addWebSocketUpgradeVerifier(const QObject *context, Handler &&func)
`(since 6.8)` QHttp2Configuration | http2Configuration() const
`(since 6.8)` void | setHttp2Configuration(const QHttp2Configuration &configuration)

Class QAbstractProtobufSerializer:

`(since 6.8)` virtual QAbstractProtobufSerializer::Error | lastError() const = 0
`(since 6.8)` virtual QString | lastErrorString() const = 0

Class QAnyStringView:

`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` QAnyStringView & | slice(qsizetype pos, qsizetype n)
`(since 6.8)` QAnyStringView & | slice(qsizetype pos)

Class QBasicTimer:

`(since 6.8)` Qt::TimerId | id() const

Class QByteArray:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` void | resizeForOverwrite(qsizetype size)
`(since 6.8)` QByteArray & | slice(qsizetype pos, qsizetype n)
`(since 6.8)` QByteArray & | slice(qsizetype pos)

Class QByteArrayView:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` QByteArrayView & | slice(qsizetype pos, qsizetype n)
`(since 6.8)` QByteArrayView & | slice(qsizetype pos)

Class QCanBus:

`(since 6.8)` QList<QCanBusDeviceInfo> | availableDevices(QString *errorMessage) const

Class QColorSpace:

`(since 6.8)` QColorSpace::ColorModel | colorModel() const
`(since 6.8)` bool | isValidTarget() const
`(since 6.8)` void | setWhitePoint(QPointF whitePoint)
`(since 6.8)` QColorSpace::TransformModel | transformModel() const
`(since 6.8)` QPointF | whitePoint() const

Class QCryptographicHash:

`(since 6.8)` QByteArrayView | hashInto(QSpan<char> buffer, QByteArrayView data, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<char> buffer, QSpan<const QByteArrayView> data, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<std::byte> buffer, QByteArrayView data, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<std::byte> buffer, QSpan<const QByteArrayView> data, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<uchar> buffer, QByteArrayView data, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<uchar> buffer, QSpan<const QByteArrayView> data, QCryptographicHash::Algorithm method)

Class QDBusObjectPath:

`(since 6.8)` QDebug | operator<<(QDebug dbg, const QDBusObjectPath &path)

Class QDnsLookup:

`(since 6.8)` quint16 | defaultPortForProtocol(QDnsLookup::Protocol protocol)
`(since 6.8)` bool | isProtocolSupported(QDnsLookup::Protocol protocol)
`(since 6.8)` void | setSslConfiguration(const QSslConfiguration &sslConfiguration)
`(since 6.8)` QList<QDnsTlsAssociationRecord> | tlsAssociationRecords() const

Class QFontDatabase:

`(since 6.8)` void | addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
`(since 6.8)` QStringList | applicationFallbackFontFamilies(QChar::Script script)
`(since 6.8)` bool | removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
`(since 6.8)` void | setApplicationFallbackFontFamilies(QChar::Script script, const QStringList &familyNames)

Class QGrpcBidiStream:

`(since 6.8)` void | writesDone()

Class QGrpcCallOptions:

`(since 6.8)` QVariant | operator QVariant() const
`(since 6.8)` QDebug | operator<<(QDebug debug, const QGrpcCallOptions &callOpts)
`(since 6.8)` void | swap(QGrpcCallOptions &other)

Class QGrpcChannelOptions:

`(since 6.8)` QVariant | operator QVariant() const
`(since 6.8)` QDebug | operator<<(QDebug debug, const QGrpcChannelOptions &chOpts)
`(since 6.8)` QGrpcSerializationFormat | serializationFormat() const
`(since 6.8)` QGrpcChannelOptions & | setSerializationFormat(const QGrpcSerializationFormat &format)
`(since 6.8)` void | swap(QGrpcChannelOptions &other)

Class QGrpcClientStream:

`(since 6.8)` void | writesDone()

Class QGrpcOperation:

`(since 6.8)` bool | read(QProtobufMessage *message) const

Class QGrpcSerializationFormat:

`(since 6.8)` QVariant | operator QVariant() const
`(since 6.8)` QDebug | operator<<(QDebug debug, const QGrpcSerializationFormat &sfmt)
`(since 6.8)` void | swap(QGrpcSerializationFormat &other)

Class QGrpcStatus:

`(since 6.8)` bool | isOk() const
`(since 6.8)` QVariant | operator QVariant() const
`(since 6.8)` QDataStream & | operator<<(QDataStream &out, const QGrpcStatus &status)
`(since 6.8)` QDebug | operator<<(QDebug debug, const QGrpcStatus &status)
`(since 6.8)` QDataStream & | operator>>(QDataStream &in, QGrpcStatus &status)
`(since 6.8)` size_t | qHash(const QGrpcStatus &key, size_t seed)
`(since 6.8)` void | swap(QGrpcStatus &other)

Class QHash:

`(since 6.8)` size_t | qHash(qint128 key, size_t seed)
`(since 6.8)` size_t | qHash(quint128 key, size_t seed)

Class QHelpContentModel:

`(since 6.8)` void | createContentsForCurrentFilter()

Class QHelpIndexModel:

`(since 6.8)` void | createIndexForCurrentFilter()

Class QHttpHeaders:

`(since 6.8)` bool | replaceOrAppend(QHttpHeaders::WellKnownHeader name, QAnyStringView newValue)

Class QHttpPart:

`(since 6.8)` QDebug | operator<<(QDebug debug, const QHttpPart &part)

Class QHttpServerResponder:

`(since 6.8)` void | swap(QHttpServerResponder &other)
`(since 6.8)` void | writeBeginChunked(const QByteArray &mimeType, QHttpServerResponder::StatusCode status)
`(since 6.8)` void | writeBeginChunked(const QHttpHeaders &headers, QHttpServerResponder::StatusCode status)
`(since 6.8)` void | writeBeginChunked(const QHttpHeaders &headers, QList<QHttpHeaders::WellKnownHeader> trailers, QHttpServerResponder::StatusCode status)
`(since 6.8)` void | writeChunk(const QByteArray &data)
`(since 6.8)` void | writeEndChunked(const QByteArray &data)
`(since 6.8)` void | writeEndChunked(const QByteArray &data, const QHttpHeaders &trailers)

Class QHttpServerResponse:

`(since 6.8)` QHttpHeaders | headers() const
`(since 6.8)` void | setHeaders(QHttpHeaders &&newHeaders)
`(since 6.8)` void | setHeaders(const QHttpHeaders &newHeaders)

Class QIdentityProxyModel:

`(since 6.8)` bool | handleSourceDataChanges() const
`(since 6.8)` bool | handleSourceLayoutChanges() const
`(since 6.8)` void | setHandleSourceDataChanges(bool b)
`(since 6.8)` void | setHandleSourceLayoutChanges(bool b)

Class QImage:

`(since 6.8)` void | applyColorTransform(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags)
`(since 6.8)` QImage | colorTransformed(const QColorTransform &transform, QImage::Format toFormat, Qt::ImageConversionFlags flags) const &
`(since 6.8)` QImage | colorTransformed(const QColorTransform &transform, QImage::Format format, Qt::ImageConversionFlags flags) &&
`(since 6.8)` void | convertToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags)
`(since 6.8)` QImage | convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags) &&
`(since 6.8)` QImage | convertedToColorSpace(const QColorSpace &colorSpace, QImage::Format format, Qt::ImageConversionFlags flags) const &

Class QJniObject:

`(since 6.8)` void | swap(QJniObject &other)

Class QLatin1StringMatcher:

`(since 6.8)` qsizetype | indexIn(QStringView haystack, qsizetype from) const

Class QLatin1StringView:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` QLatin1StringView & | slice(qsizetype pos)
`(since 6.8)` QLatin1StringView & | slice(qsizetype pos, qsizetype n)

Class QLibraryInfo:

`(since 6.8)` QStringList | paths(QLibraryInfo::LibraryPath p)

Class QLineF:

`(since 6.8)` bool | qFuzzyCompare(const QLineF &lhs, const QLineF &rhs)
`(since 6.8)` bool | qFuzzyIsNull(const QLineF &line)

Class QList:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` void | resizeForOverwrite(qsizetype size)

Class QLocalServer:

`(since 6.8)` void | addPendingConnection(QLocalSocket *socket)

Class QMap:

`(since 6.8)` size_t | qHash(const QMap<Key, T> &key, size_t seed)

Class QMarginsF:

`(since 6.8)` bool | qFuzzyCompare(const QMarginsF &lhs, const QMarginsF &rhs)
`(since 6.8)` bool | qFuzzyIsNull(const QMarginsF &margins)

Class QMessageAuthenticationCode:

`(since 6.8)` QByteArrayView | hashInto(QSpan<char> buffer, QByteArrayView message, QByteArrayView key, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<char> buffer, QSpan<const QByteArrayView> messageParts, QByteArrayView key, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<std::byte> buffer, QByteArrayView message, QByteArrayView key, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<std::byte> buffer, QSpan<const QByteArrayView> messageParts, QByteArrayView key, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<uchar> buffer, QByteArrayView message, QByteArrayView key, QCryptographicHash::Algorithm method)
`(since 6.8)` QByteArrayView | hashInto(QSpan<uchar> buffer, QSpan<const QByteArrayView> messageParts, QByteArrayView key, QCryptographicHash::Algorithm method)

Class QNetworkAccessManager:

`(since 6.8)` QNetworkReply * | post(const QNetworkRequest &request, std::nullptr_t nptr)
`(since 6.8)` QNetworkReply * | put(const QNetworkRequest &request, std::nullptr_t nptr)

Class QNetworkCacheMetaData:

`(since 6.8)` QHttpHeaders | headers() const
`(since 6.8)` void | setHeaders(const QHttpHeaders &headers)

Class QNetworkProxy:

`(since 6.8)` QHttpHeaders | headers() const
`(since 6.8)` void | setHeaders(QHttpHeaders &&newHeaders)
`(since 6.8)` void | setHeaders(const QHttpHeaders &newHeaders)

Class QNetworkReply:

`(since 6.8)` QHttpHeaders | headers() const
`(since 6.8)` void | setHeaders(const QHttpHeaders &newHeaders)
`(since 6.8)` void | setHeaders(QHttpHeaders &&newHeaders)
`(since 6.8)` void | setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value)

Class QNetworkRequest:

`(since 6.8)` QHttpHeaders | headers() const
`(since 6.8)` void | setHeaders(QHttpHeaders &&newHeaders)
`(since 6.8)` void | setHeaders(const QHttpHeaders &newHeaders)

Class QNetworkRequestFactory:

`(since 6.8)` QVariant | attribute(QNetworkRequest::Attribute attribute) const
`(since 6.8)` QVariant | attribute(QNetworkRequest::Attribute attribute, const QVariant &defaultValue) const
`(since 6.8)` void | clearAttribute(QNetworkRequest::Attribute attribute)
`(since 6.8)` void | clearAttributes()
`(since 6.8)` QNetworkRequest::Priority | priority() const
`(since 6.8)` void | setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value)
`(since 6.8)` void | setPriority(QNetworkRequest::Priority priority)

Class QOAuth2AuthorizationCodeFlow:

`(since 6.8)` QOAuth2AuthorizationCodeFlow::PkceMethod | pkceMethod() const
`(since 6.8)` void | setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length)

Class QObject:

`(since 6.8)` void | killTimer(Qt::TimerId id)

Class QPaintDevice:

`(since 6.8)` int | encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value)

Class QPdfWriter:

`(since 6.8)` QPdfWriter::ColorModel | colorModel() const
`(since 6.8)` QUuid | documentId() const
`(since 6.8)` QPdfOutputIntent | outputIntent() const
`(since 6.8)` void | setColorModel(QPdfWriter::ColorModel model)
`(since 6.8)` void | setDocumentId(QUuid documentId)
`(since 6.8)` void | setOutputIntent(const QPdfOutputIntent &intent)

Class QPointF:

`(since 6.8)` bool | qFuzzyCompare(const QPointF &p1, const QPointF &p2)
`(since 6.8)` bool | qFuzzyIsNull(const QPointF &point)

Class QProtobufMessage:

`(since 6.8)` bool | deserialize(QAbstractProtobufSerializer *serializer, QByteArrayView data)
`(since 6.8)` const QtProtobufPrivate::QProtobufPropertyOrdering * | propertyOrdering() const
`(since 6.8)` QByteArray | serialize(QAbstractProtobufSerializer *serializer) const

Class QQuickRenderTarget:

`(since 6.8)` QRhiTexture * | depthTexture() const
`(since 6.8)` QQuickRenderTarget | fromD3D11Texture(void *texture, uint format, QSize pixelSize, int sampleCount, QQuickRenderTarget::Flags flags)
`(since 6.8)` QQuickRenderTarget | fromD3D12Texture(void *texture, int resourceState, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
`(since 6.8)` QQuickRenderTarget | fromMetalTexture(MTLTexture *texture, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
`(since 6.8)` QQuickRenderTarget | fromOpenGLTexture(uint textureId, uint format, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
`(since 6.8)` QQuickRenderTarget | fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, VkFormat viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
`(since 6.8)` void | setDepthTexture(QRhiTexture *texture)

Class QQuickWebEngineProfile:

`(since 6.8)` QWebEngineClientHints * | clientHints() const
`(since 6.8)` QList<QWebEnginePermission> | listAllPermissions() const
`(since 6.8)` QList<QWebEnginePermission> | listPermissionsForOrigin(const QUrl &securityOrigin) const
`(since 6.8)` QList<QWebEnginePermission> | listPermissionsForPermissionType(QWebEnginePermission::PermissionType permissionType) const
`(since 6.8)` QWebEnginePermission | queryPermission(const QUrl &securityOrigin, QWebEnginePermission::PermissionType permissionType) const

Class QRectF:

`(since 6.8)` bool | qFuzzyCompare(const QRectF &lhs, const QRectF &rhs)
`(since 6.8)` bool | qFuzzyIsNull(const QRectF &rect)

Class QRegion:

`(since 6.8)` QSpan<const QRect> | rects() const
`(since 6.8)` void | setRects(QSpan<const QRect> rects)

Class QRhiTexture:

`(since 6.8)` QRhiTexture::ViewFormat | readViewFormat() const
`(since 6.8)` void | setReadViewFormat(const QRhiTexture::ViewFormat &fmt)
`(since 6.8)` void | setWriteViewFormat(const QRhiTexture::ViewFormat &fmt)
`(since 6.8)` QRhiTexture::ViewFormat | writeViewFormat() const

Class QRhiTextureRenderTargetDescription:

`(since 6.8)` QRhiTexture * | depthResolveTexture() const
`(since 6.8)` void | setDepthResolveTexture(QRhiTexture *tex)

Class QSGMaterial:

`(since 6.8)` int | viewCount() const

Class QSGMaterialShader:

`(since 6.8)` void | setShaderFileName(QSGMaterialShader::Stage stage, const QString &filename, int viewCount)

Class QSizeF:

`(since 6.8)` bool | qFuzzyCompare(const QSizeF &lhs, const QSizeF &rhs)
`(since 6.8)` bool | qFuzzyIsNull(const QSizeF &size)

Class QSpan:

`(since 6.8)` QSpan<const std::byte, E == q20::dynamic_extent ? q20::dynamic_extent : E * sizeof(T)> | as_bytes(QSpan<T, E> s)
`(since 6.8)` QSpan<std::byte, E == q20::dynamic_extent ? q20::dynamic_extent : E * sizeof(T)> | as_writable_bytes(QSpan<T, E> s)

Class QSqlDatabase:

`(since 6.8)` bool | moveToThread(QThread *targetThread)
`(since 6.8)` QThread * | thread() const

Class QString:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` void | resizeForOverwrite(qsizetype size)
`(since 6.8)` QString & | slice(qsizetype pos, qsizetype n)
`(since 6.8)` QString & | slice(qsizetype pos)

Class QStringView:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` QStringView & | slice(qsizetype pos, qsizetype n)
`(since 6.8)` QStringView & | slice(qsizetype pos)

Class QStyleHints:

`(since 6.8)` void | setColorScheme(Qt::ColorScheme scheme)
`(since 6.8)` void | unsetColorScheme()

Class QSvgRenderer:

`(since 6.8)` void | setDefaultOptions(QtSvg::Options flags)

Class QThread:

`(since 6.8)` bool | isCurrentThread() const
`(since 6.8)` bool | isMainThread()

Class QThreadPool:

`(since 6.8)` bool | waitForDone(QDeadlineTimer deadline)

Class QTimeZone:

`(since 6.8)` bool | hasAlternativeName(QByteArrayView alias) const

Class QTimer:

`(since 6.8)` Qt::TimerId | id() const

Class QTimerEvent:

`(since 6.8)` Qt::TimerId | id() const

Class QUtf8StringView:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const
`(since 6.8)` QUtf8StringView & | slice(qsizetype pos, qsizetype n)
`(since 6.8)` QUtf8StringView & | slice(qsizetype pos)

Class QVarLengthArray:

`(since 6.8)` qsizetype | maxSize()
`(since 6.8)` qsizetype | max_size() const

Class QVersionNumber:

`(since 6.8)` QVersionNumber::const_iterator | begin() const
`(since 6.8)` QVersionNumber::const_iterator | cbegin() const
`(since 6.8)` QVersionNumber::const_iterator | cend() const
`(since 6.8)` QVersionNumber::const_iterator | constBegin() const
`(since 6.8)` QVersionNumber::const_iterator | constEnd() const
`(since 6.8)` QVersionNumber::const_reverse_iterator | crbegin() const
`(since 6.8)` QVersionNumber::const_reverse_iterator | crend() const
`(since 6.8)` QVersionNumber::const_iterator | end() const
`(since 6.8)` QVersionNumber::const_reverse_iterator | rbegin() const
`(since 6.8)` QVersionNumber::const_reverse_iterator | rend() const

Class QWebEnginePage:

`(since 6.8)` std::optional<QWebEngineFrame> | findFrameByName(QAnyStringView name)
`(since 6.8)` QWebEngineFrame | mainFrame()
`(since 6.8)` void | permissionRequested(QWebEnginePermission permission)
`(since 6.8)` void | printRequestedByFrame(QWebEngineFrame frame)
`(since 6.8)` void | zoomFactorChanged(qreal factor)

Class QWebEngineProfile:

`(since 6.8)` QWebEngineClientHints * | clientHints() const
`(since 6.8)` QList<QWebEnginePermission> | listAllPermissions() const
`(since 6.8)` QList<QWebEnginePermission> | listPermissionsForOrigin(const QUrl &securityOrigin) const
`(since 6.8)` QList<QWebEnginePermission> | listPermissionsForPermissionType(QWebEnginePermission::PermissionType permissionType) const
`(since 6.8)` QWebEngineProfile::PersistentPermissionsPolicy | persistentPermissionsPolicy() const
`(since 6.8)` QWebEnginePermission | queryPermission(const QUrl &securityOrigin, QWebEnginePermission::PermissionType permissionType) const
`(since 6.8)` void | setPersistentPermissionsPolicy(QWebEngineProfile::PersistentPermissionsPolicy newPersistentPermissionsPolicy)

Class QWebEngineView:

`(since 6.8)` void | printRequestedByFrame(QWebEngineFrame frame)

Class QWidget:

`(since 6.8)` QWidget * | childAt(const QPointF &p) const

### New Functions in Namespaces

`(since 6.8)` Qt::strong_ordering | compareThreeWay(std::nullptr_t lhs, Qt::totally_ordered_wrapper<T *> rhs)
`(since 6.8)` Qt::strong_ordering | compareThreeWay(U *lhs, Qt::totally_ordered_wrapper<T *> rhs)
`(since 6.8)` Qt::strong_ordering | compareThreeWay(Qt::totally_ordered_wrapper<T *> lhs, std::nullptr_t rhs)
`(since 6.8)` Qt::strong_ordering | compareThreeWay(Qt::totally_ordered_wrapper<T *> lhs, U *rhs)
`(since 6.8)` Qt::strong_ordering | compareThreeWay(Qt::totally_ordered_wrapper<T *> lhs, Qt::totally_ordered_wrapper<U *> rhs)
`(since 6.8)` void | failOnWarning()
`(since 6.8)` void | setThrowOnFail(bool enable)
`(since 6.8)` void | setThrowOnSkip(bool enable)
`(since 6.8)` void | wheelEvent(QWindow *window, QPointF pos, QPoint angleDelta, QPoint pixelDelta, Qt::KeyboardModifiers stateKey, Qt::ScrollPhase phase)

### New Macros

`(since 6.8)` | QTEST_THROW_ON_FAIL
`(since 6.8)` | QTEST_THROW_ON_SKIP
`(since 6.8)` | QT_ENABLE_STRICT_MODE_UP_TO
`(since 6.8)` | QT_NO_QASCONST
`(since 6.8)` | QT_NO_QSNPRINTF
`(since 6.8)` | QT_NO_USE_NODISCARD_FILE_OPEN
`(since 6.8)` | QT_USE_NODISCARD_FILE_OPEN
`(since 6.8)` | Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_NAMED_ELEMENT(className, QmlType)
`(since 6.8)` | Q_DECLARE_JNI_CLASS(Type, JavaSignature)
`(since 6.8)` | Q_DECLARE_JNI_NATIVE_METHOD(Method, JavaName)
`(since 6.8)` | Q_DECLARE_JNI_NATIVE_METHOD(Method)
`(since 6.8)` | Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(Method, JavaName)
`(since 6.8)` | Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(Method)
`(since 6.8)` | Q_JNI_NATIVE_METHOD(Method)
`(since 6.8)` | Q_JNI_NATIVE_SCOPED_METHOD(Method, Scope)

### New Enum Types

`(since 6.8)` enum class | BlendOp { Add, Subtract, ReverseSubtract, Min, Max }
`(since 6.8)` enum class | Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat }
`(since 6.8)` enum class | AnnouncementPoliteness { Polite, Assertive }
`(since 6.8)` enum class | Attribute { Custom, Level }
`(since 6.8)` enum class | ColorModel { Undefined, Rgb, Gray, Cmyk }
`(since 6.8)` enum class | TransformModel { ThreeComponentMatrix, ElementListProcessing }
`(since 6.8)` enum class | PkceMethod { S256, Plain, None }
`(since 6.8)` enum class | OutOfBoundsPolicy { Reject, Clamp }
`(since 6.8)` enum class | ColorModel { RGB, Grayscale, CMYK, Auto }
`(since 6.8)` enum class | Flag { MultisampleResolve }
`(since 6.8)` enum class | PersistentPermissionsPolicy { AskEveryTime, StoreInMemory, StoreOnDisk }
`(since 6.8)` enum class | PersistentPermissionsPolicy { AskEveryTime, StoreInMemory, StoreOnDisk }
`(since 6.8)` enum class | ContextMenuTrigger { Press, Release }
`(since 6.8)` enum class | TimerId { Invalid }

### New Enum Values

enum value | Event::Announcement
enum value | Event::IdentifierChanged
enum value | Feature::ClipboardReadWrite
enum value | Feature::LocalFontsAccess
enum value | Format::Format_CMYK8888
enum value | InterfaceType::AttributesInterface
enum value | Key::HasHdrContent
enum value | Language::Kuvi
enum value | NamedColorSpace::Bt2020
enum value | NamedColorSpace::Bt2100Hlg
enum value | NamedColorSpace::Bt2100Pq
enum value | Option::AssumeTrustedSource
enum value | PaintDeviceMetric::PdmDevicePixelRatioF_EncodedA
enum value | PaintDeviceMetric::PdmDevicePixelRatioF_EncodedB
enum value | PdfVersion::PdfVersion_X4
enum value | Primaries::Bt2020
enum value | StyleStrategy::ContextFontMerging
enum value | StyleStrategy::PreferTypoLineMetrics
enum value | Text::Identifier
enum value | TransferFunction::Bt2020
enum value | TransferFunction::Hlg
enum value | TransferFunction::St2084
enum value | Type::TLSA
enum value | UnicodeVersion::Unicode_15_1

### New Type Aliases

`(since 6.8)` | const_iterator
`(since 6.8)` | const_pointer
`(since 6.8)` | const_reference
`(since 6.8)` | const_reverse_iterator
`(since 6.8)` | difference_type
`(since 6.8)` | pointer
`(since 6.8)` | reference
`(since 6.8)` | size_type
`(since 6.8)` | value_type

### New Properties

`(since 6.8)` authenticData : const `(since 6.8)` nameserverProtocol : `(since 6.8)` audioBufferInput : const `(since 6.8)` videoFrameInput : const `(since 6.8)` audioBufferOutput : const `(since 6.8)` count : const `(since 6.8)` persistentPermissionsPolicy : const `(since 6.8)` numericalPrecisionPolicy : const `(since 6.8)` numericalPrecisionPolicy : const `(since 6.8)` autoValue : const `(since 6.8)` defaultValue : const `(since 6.8)` generated : const `(since 6.8)` length : const `(since 6.8)` metaType : const `(since 6.8)` precision : const | `(since 6.8)` readOnly : const `(since 6.8)` requiredStatus : const `(since 6.8)` tableName : const `(since 6.8)` value : const `(since 6.8)` cursorName : const `(since 6.8)` name : const `(since 6.8)` forwardOnly : const `(since 6.8)` numericalPrecisionPolicy : const `(since 6.8)` positionalBindingEnabled : const `(since 6.8)` contextMenuTrigger : const `(since 6.8)` modal : const `(since 6.8)` modal : const `(since 6.8)` isMainFrame : const `(since 6.8)` hasFormData : const

### New Variables

`(since 6.8)` | opAlpha
`(since 6.8)` | opColor
`(since 6.8)` | MacOSSequoia

### New QML Types

P
  PlanarTransform

V
  VectorImage

W
  webEngineFrame
  webEnginePermission
  WindowContainer

X
  XrCamera
  XrController
  XrErrorDialog
  XrHandModel
  XrInputAction
  XrItem
  XrOrigin
  XrRuntimeInfo
  XrSpatialAnchor
  XrSpatialAnchorListModel
  XrView
  XrVirtualMouse

### New QML Properties

QML Type BorderImage:

`(since 6.8)` | retainWhileLoading : bool

QML Type DebugSettings:

`(since 6.8)` | disableShadowCameraUpdate : bool
`(since 6.8)` | drawCascades : bool
`(since 6.8)` | drawDirectionalLightShadowBoxes : bool
`(since 6.8)` | drawSceneCascadeIntersection : bool
`(since 6.8)` | drawShadowCastingBounds : bool
`(since 6.8)` | drawShadowReceivingBounds : bool

QML Type DirectionalLight:

`(since 6.8)` | csmBlendRatio : real
`(since 6.8)` | csmNumSplits : int
`(since 6.8)` | csmSplit1 : real
`(since 6.8)` | csmSplit2 : real
`(since 6.8)` | csmSplit3 : real

QML Type Drag:

`(since 6.8)` | imageSourceSize : size

QML Type GrpcChannelOptions:

`(since 6.8)` | serializationFormat : enumeration

QML Type HorizontalHeaderView:

`(since 6.8)` | movableColumns : bool

QML Type Image:

`(since 6.8)` | retainWhileLoading : bool

QML Type Layout:

`(since 6.8)` | useDefaultSizePolicy : enumeration

QML Type Light:

`(since 6.8)` | pcfFactor : real
`(since 6.8)` | softShadowQuality : enumeration

QML Type MediaPlayer:

`(since 6.8)` | audioBufferOutput : QAudioBufferOutput

QML Type MenuItem:

`(since 6.8)` | implicitTextPadding : real
`(since 6.8)` | textPadding : real

QML Type PathText:

`(since 6.8)` | font.contextFontMerging : bool
`(since 6.8)` | font.preferTypoLineMetrics : bool

QML Type PdfSearchModel:

`(since 6.8)` | count : int

QML Type Popup:

`(since 6.8)` | popupType : enumeration

QML Type PrincipledMaterial:

`(since 6.8)` | baseColorChannel : enumeration
`(since 6.8)` | baseColorSingleChannelEnabled : bool
`(since 6.8)` | emissiveChannel : enumeration
`(since 6.8)` | emissiveSingleChannelEnabled : bool
`(since 6.8)` | invertOpacityMapValue : real
`(since 6.8)` | specularChannel : enumeration
`(since 6.8)` | specularSingleChannelEnabled : bool
`(since 6.8)` | vertexColorAlphaMask : enumeration
`(since 6.8)` | vertexColorBlueMask : enumeration
`(since 6.8)` | vertexColorGreenMask : enumeration
`(since 6.8)` | vertexColorRedMask : enumeration
`(since 6.8)` | vertexColorsMaskEnabled : bool

QML Type ShapePath:

`(since 6.8)` | fillItem : Item
`(since 6.8)` | fillTransform : matrix4x4

QML Type ShellSurface:

`(since 6.8)` | modal : bool

QML Type SpecularGlossyMaterial:

`(since 6.8)` | albedoChannel : enumeration
`(since 6.8)` | albedoSingleChannelEnabled : bool
`(since 6.8)` | emissiveChannel : enumeration
`(since 6.8)` | emissiveSingleChannelEnabled : bool
`(since 6.8)` | invertOpacityMapValue : real
`(since 6.8)` | specularChannel : enumeration
`(since 6.8)` | specularSingleChannelEnabled : bool
`(since 6.8)` | vertexColorAlphaMask : enumeration
`(since 6.8)` | vertexColorBlueMask : enumeration
`(since 6.8)` | vertexColorGreenMask : enumeration
`(since 6.8)` | vertexColorRedMask : enumeration
`(since 6.8)` | vertexColorsMaskEnabled : bool

QML Type Text:

`(since 6.8)` | font.contextFontMerging : bool
`(since 6.8)` | font.preferTypoLineMetrics : bool

QML Type TextEdit:

`(since 6.8)` | font.contextFontMerging : bool
`(since 6.8)` | font.preferTypoLineMetrics : bool

QML Type TextInput:

`(since 6.8)` | font.contextFontMerging : bool
`(since 6.8)` | font.preferTypoLineMetrics : bool

QML Type VerticalHeaderView:

`(since 6.8)` | movableRows : bool

QML Type WebEngineNavigationRequest:

`(since 6.8)` | hasFormData : bool

QML Type WebEngineProfile:

`(since 6.8)` | persistentPermissionsPolicy : enumeration

QML Type XdgToplevel:

`(since 6.8)` | modal : bool

QML Type pickResult:

`(since 6.8)` | hitType : enumeration
`(since 6.8)` | itemHit : Item

### New QML Signals

`(since 6.8)` | columnMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex)
`(since 6.8)` | rowMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex)

### New QML Methods

QML Type Accessible:

`(since 6.8)` void | announce(string message, AnnouncementPoliteness politeness)

QML Type TableView:

`(since 6.8)` | clearColumnReordering()
`(since 6.8)` | clearRowReordering()
`(since 6.8)` | moveColumn(int source, int destination)
`(since 6.8)` | moveRow(int source, int destination)

QML Type View3D:

`(since 6.8)` pickResult | pick(float x, float y, Model model)
`(since 6.8)` List<pickResult> | pickSubset(float x, float y, list<Model> models)
`(since 6.8)` | setTouchpoint(Item target, point position, int pointId, bool pressed)

QML Type WebEngineProfile:

`(since 6.8)` list<webEnginePermission> | listAllPermissions()
`(since 6.8)` list<webEnginePermission> | listPermissionsForOrigin(url securityOrigin)
`(since 6.8)` list<webEnginePermission> | listPermissionsForPermissionType(WebEnginePermission.PermissionType permissionType)
`(since 6.8)` void | queryPermission(url securityOrigin, WebEnginePermission.PermissionType permissionType)