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

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

# New Classes and Functions in Qt 6.5

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

- 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.5)` namespace | QtCanBus
`(since 6.5)` namespace | QtGrpc
`(since 6.5)` namespace | QtProtobuf

### New Classes

A
  QAbstractGrpcChannel
  QAbstractProtobufSerializer
  QAccessibleSelectionInterface

B
  QBluetoothPermission

C
  QCalendarPermission
  QCameraPermission
  QCanDbcFileParser
  QCanFrameProcessor
  QCanMessageDescription
  QCanSignalDescription
  QCanUniqueIdDescription
  QContactsPermission

G
  QGrpcCallReply
  QGrpcClientBase
  QGrpcHttp2Channel
  QGrpcOperation
  QGrpcStatus

H
  QHttp1Configuration

L
  QLatin1StringMatcher
  QLocationPermission

M
  MultiplexValueRange (QCanSignalDescription)
  QMicrophonePermission

P
  ParseResult: QtXml (QDomDocument)
  ParseResult: QtSerialBus (QCanFrameProcessor)
  QPermission
  QProtobufMessage
  QProtobufMessageDeleter
  QProtobufSerializer

Q
  QQuickAttachedPropertyPropagator

S
  QScreenCapture

U
  QUtiMimeConverter

W
  QWaylandApplication (QNativeInterface)

### New Member Functions

Class QAbstractOAuth2:

`(since 6.5)` void | setSslConfiguration(const QSslConfiguration &configuration)
`(since 6.5)` QSslConfiguration | sslConfiguration() const
`(since 6.5)` void | sslConfigurationChanged(const QSslConfiguration &configuration)

Class QAccessibleInterface:

`(since 6.5)` QAccessibleSelectionInterface * | selectionInterface()

Class QAnyStringView:

`(since 6.5)` void | chop(qsizetype n)
`(since 6.5)` QAnyStringView | chopped(qsizetype n) const
`(since 6.5)` QAnyStringView | first(qsizetype n) const
`(since 6.5)` QAnyStringView | last(qsizetype n) const
`(since 6.5)` QAnyStringView | sliced(qsizetype pos) const
`(since 6.5)` QAnyStringView | sliced(qsizetype pos, qsizetype n) const
`(since 6.5)` void | truncate(qsizetype n)

Class QBasicTimer:

`(since 6.5)` void | start(QBasicTimer::Duration duration, QObject *object)
`(since 6.5)` void | start(QBasicTimer::Duration duration, Qt::TimerType timerType, QObject *obj)

Class QByteArray:

`(since 6.5)` QByteArray::iterator | erase(QByteArray::const_iterator it)
`(since 6.5)` QByteArray | fromEcmaUint8Array(emscripten::val uint8array)
`(since 6.5)` QByteArray & | removeAt(qsizetype pos)
`(since 6.5)` QByteArray & | removeFirst()
`(since 6.5)` QByteArray & | removeLast()
`(since 6.5)` emscripten::val | toEcmaUint8Array()

Class QCoreApplication:

`(since 6.5)` Qt::PermissionStatus | checkPermission(const QPermission &permission)
`(since 6.5)` void | requestPermission(const QPermission &permission, Functor &&functor)
`(since 6.5)` void | requestPermission(const QPermission &permission, const QObject *context, Functor functor)

Class QCryptographicHash:

`(since 6.5)` QCryptographicHash::Algorithm | algorithm() const
`(since 6.5)` QCryptographicHash & | operator=(QCryptographicHash &&other)
`(since 6.5)` bool | supportsAlgorithm(QCryptographicHash::Algorithm method)
`(since 6.5)` void | swap(QCryptographicHash &other)

Class QDate:

`(since 6.5)` QDateTime | endOfDay() const
`(since 6.5)` QDateTime | startOfDay() const

Class QDateTime:

`(since 6.5)` QDateTime | currentDateTime(const QTimeZone &zone)
`(since 6.5)` QTimeZone | timeRepresentation() const

Class QDebug:

`(since 6.5)` QDebug & | operator<<(const std::basic_string<Char, Args...> &s)
`(since 6.5)` QDebug & | operator<<(std::basic_string_view<Char, Args...> s)

Class QDomDocument:

`(since 6.5)` QDomDocument::ParseResult | setContent(QAnyStringView text, QDomDocument::ParseOptions options = ParseOption::Default)
`(since 6.5)` QDomDocument::ParseResult | setContent(QIODevice *device, QDomDocument::ParseOptions options = ParseOption::Default)
`(since 6.5)` QDomDocument::ParseResult | setContent(QXmlStreamReader *reader, QDomDocument::ParseOptions options = ParseOption::Default)
`(since 6.5)` QDomDocument::ParseResult | setContent(const QByteArray &data, QDomDocument::ParseOptions options = ParseOption::Default)

Class QGlyphRun:

`(since 6.5)` void | setSourceString(const QString &sourceString)
`(since 6.5)` void | setStringIndexes(const QList<qsizetype> &stringIndexes)
`(since 6.5)` QString | sourceString() const
`(since 6.5)` QList<qsizetype> | stringIndexes() const

Class QGuiApplication:

`(since 6.5)` void | setBadgeNumber(qint64 number)

Class QHash:

`(since 6.5)` size_t | qHash(Enum key, size_t seed = 0)

Class QHttp1Configuration:

`(since 6.5)` bool | operator!=(const QHttp1Configuration &lhs, const QHttp1Configuration &rhs)
`(since 6.5)` bool | operator==(const QHttp1Configuration &lhs, const QHttp1Configuration &rhs)
`(since 6.5)` size_t | qHash(const QHttp1Configuration &key, size_t seed = 0)

Class QHttpServerRequest:

`(since 6.5)` QHostAddress | localAddress() const
`(since 6.5)` quint16 | localPort() const
`(since 6.5)` quint16 | remotePort() const

Class QHttpServerResponder:

`(since 6.5)` void | sendResponse(const QHttpServerResponse &response)

Class QLatin1StringView:

`(since 6.5)` int | compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Class QLibraryInfo:

`(since 6.5)` bool | isSharedBuild()

Class QLowEnergyController:

`(since 6.5)` void | readRssi()
`(since 6.5)` void | rssiRead(qint16 rssi)

Class QMessageLogger:

`(since 6.5)` QDebug | fatal() const
`(since 6.5)` QDebug | fatal(QMessageLogger::CategoryFunction catFunc) const
`(since 6.5)` QDebug | fatal(const QLoggingCategory &cat) const
`(since 6.5)` void | fatal(QMessageLogger::CategoryFunction catFunc, const char *msg, ...) const
`(since 6.5)` void | fatal(const QLoggingCategory &cat, const char *msg, ...) const

Class QMetaMethod:

`(since 6.5)` bool | invoke(QObject *obj, Args &&... arguments) const
`(since 6.5)` bool | invoke(QObject *obj, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... arguments) const
`(since 6.5)` bool | invoke(QObject *obj, Qt::ConnectionType type, Args &&... arguments) const
`(since 6.5)` bool | invoke(QObject *obj, Qt::ConnectionType type, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... arguments) const
`(since 6.5)` bool | invokeOnGadget(void *gadget, Args &&... arguments) const
`(since 6.5)` bool | invokeOnGadget(void *gadget, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... arguments) const

Class QMetaObject:

`(since 6.5)` bool | invokeMethod(QObject *obj, const char *member, Args &&... args)
`(since 6.5)` bool | invokeMethod(QObject *obj, const char *member, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... args)
`(since 6.5)` bool | invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, Args &&... args)
`(since 6.5)` bool | invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QTemplatedMetaMethodReturnArgument<ReturnArg> ret, Args &&... args)
`(since 6.5)` QObject * | newInstance(Args &&... arguments) const

Class QMetaType:

`(since 6.5)` bool | isCopyConstructible() const
`(since 6.5)` bool | isDefaultConstructible() const
`(since 6.5)` bool | isDestructible() const
`(since 6.5)` bool | isMoveConstructible() const
`(since 6.5)` QDebug | operator<<(QDebug d, QMetaType m)
`(since 6.5)` int | qRegisterMetaType(QMetaType meta)
`(since 6.5)` void | registerType() const

Class QEGLContext:

`(since 6.5)` virtual void | invalidateContext() = 0

Class QNetworkRequest:

`(since 6.5)` QHttp1Configuration | http1Configuration() const
`(since 6.5)` void | setHttp1Configuration(const QHttp1Configuration &configuration)

Class QOpenGLBuffer:

`(since 6.5)` QOpenGLBuffer & | operator=(QOpenGLBuffer &&other)
`(since 6.5)` void | swap(QOpenGLBuffer &other)

Class QOpenGLWidget:

`(since 6.5)` QOpenGLWidget::TargetBuffer | currentTargetBuffer() const
`(since 6.5)` GLuint | defaultFramebufferObject(QOpenGLWidget::TargetBuffer targetBuffer) const
`(since 6.5)` QImage | grabFramebuffer(QOpenGLWidget::TargetBuffer targetBuffer)
`(since 6.5)` void | makeCurrent(QOpenGLWidget::TargetBuffer targetBuffer)

Class QQmlApplicationEngine:

`(since 6.5)` void | loadFromModule(QAnyStringView uri, QAnyStringView typeName)

Class QQmlComponent:

`(since 6.5)` bool | isBound() const
`(since 6.5)` void | loadFromModule(QAnyStringView uri, QAnyStringView typeName, QQmlComponent::CompilationMode mode = PreferSynchronous)

Class QQmlEngine:

`(since 6.5)` void | offlineStoragePathChanged()
`(since 6.5)` T | singletonInstance(QAnyStringView uri, QAnyStringView typeName)

Class QQuickGraphicsConfiguration:

`(since 6.5)` bool | isAutomaticPipelineCacheEnabled() const
`(since 6.5)` void | setAutomaticPipelineCache(bool enable)
`(since 6.5)` void | setDebugLayer(bool enable)
`(since 6.5)` void | setDebugMarkers(bool enable)
`(since 6.5)` void | setPipelineCacheLoadFile(const QString &filename)
`(since 6.5)` void | setPipelineCacheSaveFile(const QString &filename)
`(since 6.5)` void | setPreferSoftwareDevice(bool enable)

Class QRectF:

`(since 6.5)` QRectF | fromDOMRect(emscripten::val domRect)
`(since 6.5)` emscripten::val | toDOMRect() const

Class QRegularExpression:

`(since 6.5)` QRegularExpressionMatchIterator | globalMatchView(QStringView subjectView, qsizetype offset = 0, QRegularExpression::MatchType matchType = NormalMatch, QRegularExpression::MatchOptions matchOptions = NoMatchOption) const
`(since 6.5)` QRegularExpressionMatch | matchView(QStringView subjectView, qsizetype offset = 0, QRegularExpression::MatchType matchType = NormalMatch, QRegularExpression::MatchOptions matchOptions = NoMatchOption) const

Class QSGRenderNode:

`(since 6.5)` const QMatrix4x4 * | projectionMatrix() const

Class QString:

`(since 6.5)` QString & | append(QUtf8StringView str)
`(since 6.5)` QString::iterator | erase(QString::const_iterator it)
`(since 6.5)` QString & | insert(qsizetype position, QUtf8StringView str)
`(since 6.5)` QString & | operator+=(QUtf8StringView str)
`(since 6.5)` QString & | prepend(QUtf8StringView str)
`(since 6.5)` QString & | removeAt(qsizetype pos)
`(since 6.5)` QString & | removeFirst()
`(since 6.5)` QString & | removeLast()

Class QStringView:

`(since 6.5)` int | compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Class QSvgGenerator:

`(since 6.5)` QSvgGenerator::SvgVersion | svgVersion() const

Class QTextLayout:

`(since 6.5)` QList<QGlyphRun> | glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const

Class QTextLine:

`(since 6.5)` QList<QGlyphRun> | glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const

Class QTimeZone:

`(since 6.5)` QTimeZone | asBackendZone() const
`(since 6.5)` int | fixedSecondsAheadOfUtc() const
`(since 6.5)` QTimeZone | fromDurationAheadOfUtc(std::chrono::seconds offset)
`(since 6.5)` QTimeZone | fromSecondsAheadOfUtc(int offset)
`(since 6.5)` bool | isUtcOrFixedOffset() const
`(since 6.5)` bool | isUtcOrFixedOffset(Qt::TimeSpec spec)
`(since 6.5)` Qt::TimeSpec | timeSpec() const

Class QTransform:

`(since 6.5)` QTransform & | rotate(qreal a, Qt::Axis axis, qreal distanceToPlane)
`(since 6.5)` QTransform & | rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane)

Class QUtf8StringView:

`(since 6.5)` int | compare(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
`(since 6.5)` int | compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
`(since 6.5)` int | compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Class QVulkanInstance:

`(since 6.5)` void | clearDebugOutputFilters()
`(since 6.5)` void | installDebugOutputFilter(QVulkanInstance::DebugUtilsFilter filter)

Class QWebEngineProfile:

`(since 6.5)` bool | isPushServiceEnabled() const
`(since 6.5)` void | setPushServiceEnabled(bool enable)

Class QWebEngineUrlRequestInfo:

`(since 6.5)` QHash<QByteArray, QByteArray> | httpHeaders() const

Class QWebSocket:

`(since 6.5)` void | errorOccurred(QAbstractSocket::SocketError error)

### New Functions in Namespaces

`(since 6.5)` bool | currentTestResolved()
`(since 6.5)` void | qRegisterTestCase(const QString &name, QTest::TestEntryFunction entryFunction)
`(since 6.5)` char * | toString(const QKeySequence &ks)

### New Macros

`(since 6.5)` | QML_CONSTRUCTIBLE_VALUE
`(since 6.5)` | QML_STRUCTURED_VALUE
`(since 6.5)` | Q_DECLARE_EXPORTED_LOGGING_CATEGORY(name, EXPORT_MACRO)
`(since 6.5)` | Q_PROCESSOR_LOONGARCH
`(since 6.5)` | Q_PROCESSOR_LOONGARCH_32
`(since 6.5)` | Q_PROCESSOR_LOONGARCH_64
`(since 6.5)` void | Q_UNREACHABLE_RETURN(...)
`(since 6.5)` | qCFatal(category, const char *message, ...)
`(since 6.5)` | qCFatal(category)

### New Enum Types

`(since 6.5)` enum class | ParseOption { Default, UseNamespaceProcessing, PreserveSpacingOnlyNodes }
`(since 6.5)` enum | TargetBuffer { LeftBuffer, RightBuffer }
`(since 6.5)` enum class | SvgVersion { SvgTiny12, Svg11 }
`(since 6.5)` enum | GlyphRunRetrievalFlag { RetrieveGlyphIndexes, RetrieveGlyphPositions, RetrieveStringIndexes, RetrieveString, DefaultRetrievalFlags, RetrieveAll }
`(since 6.5)` enum | Initialization { LocalTime, UTC }
`(since 6.5)` enum | DebugMessageSeverityFlag { VerboseSeverity, InfoSeverity, WarningSeverity, ErrorSeverity }
`(since 6.5)` enum | DebugMessageTypeFlag { GeneralMessage, ValidationMessage, PerformanceMessage }
`(since 6.5)` enum class | PermissionStatus { Undetermined, Granted, Denied }

### New Enum Values

enum value | Error::RssiReadError
enum value | Flag::NoPortabilityDrivers
enum value | InterfaceType::SelectionInterface
enum value | Language::Haryanvi
enum value | Language::Moksha
enum value | Language::NorthernFrisian
enum value | Language::Obolo
enum value | Language::Pijin
enum value | Language::Rajasthani
enum value | Language::TokiPona
enum value | PointConfiguration::LabelFormat
enum value | Script::Script_Kawi
enum value | TypeFlag::NeedsCopyConstruction
enum value | TypeFlag::NeedsMoveConstruction
enum value | UnicodeVersion::Unicode_15_0

### New Type Aliases

`(since 6.5)` | DebugUtilsFilter

### New Properties

`(since 6.5)` finishingKeyCombinations : QList<QKeyCombination> `(since 6.5)` maximumSequenceLength : qsizetype `(since 6.5)` screenCapture : QScreenCapture* | `(since 6.5)` playing : bool `(since 6.5)` colorScheme : Qt::ColorScheme `(since 6.5)` keyboardAutoRepeatRateF : const qreal

### New Variables

`(since 6.5)` QSGMaterialShader::GraphicsPipelineState::BlendFactor | dstAlpha
`(since 6.5)` bool | separateBlendFactors
`(since 6.5)` QSGMaterialShader::GraphicsPipelineState::BlendFactor | srcAlpha
`(since 6.5)` const QOperatingSystemVersionBase | Android12
`(since 6.5)` const QOperatingSystemVersionBase | Android12L
`(since 6.5)` const QOperatingSystemVersionBase | Android13
`(since 6.5)` const QOperatingSystemVersionBase | MacOSSonoma
`(since 6.5)` const QOperatingSystemVersionBase | Windows10_22H2

### New QML Types

E
  ExtendedSceneEnvironment

F
  Fog

G
  geoSatelliteInfo

I
  InfiniteGrid

S
  SatelliteSource
  ScreenCapture
  Settings

### New QML Properties

QML Type Camera:

`(since 6.5)` | levelOfDetailBias : real

QML Type CaptureSession:

`(since 6.5)` | screenCapture : ScreenCapture

QML Type DebugSettings:

`(since 6.5)` | materialOverride : enumeration
`(since 6.5)` | wireframeEnabled : bool

QML Type DynamicRigidBody:

`(since 6.5)` | kinematicEulerRotation : vector3d
`(since 6.5)` | kinematicPivot : vector3d
`(since 6.5)` | kinematicPosition : vector3d
`(since 6.5)` | kinematicRotation : quaternion

QML Type Item:

`(since 6.5)` | layer.live : bool

QML Type MapCircle:

`(since 6.5)` | referenceSurface : enum

QML Type MapPolygon:

`(since 6.5)` | referenceSurface : enum

QML Type MapPolyline:

`(since 6.5)` | referenceSurface : enum

QML Type MapRectangle:

`(since 6.5)` | referenceSurface : enum

QML Type MediaPlayer:

`(since 6.5)` | playing : bool

QML Type Model:

`(since 6.5)` | levelOfDetailBias : real

QML Type PrincipledMaterial:

`(since 6.5)` | vertexColorsEnabled : bool

QML Type ReflectionProbe:

`(since 6.5)` | texture : CubeMapTexture

QML Type RenderStats:

`(since 6.5)` | drawCallCount : quint64
`(since 6.5)` | drawVertexCount : quint64
`(since 6.5)` | effectGenerationTime : qint64
`(since 6.5)` | extendedDataCollectionEnabled : bool
`(since 6.5)` | graphicsAPIName : string
`(since 6.5)` | imageDataSize : quint64
`(since 6.5)` | materialGenerationTime : qint64
`(since 6.5)` | meshDataSize : quint64
`(since 6.5)` | pipelineCount : int
`(since 6.5)` | pipelineCreationTime : qint64
`(since 6.5)` | renderPassCount : int
`(since 6.5)` | vmemAllocCount : quint32
`(since 6.5)` | vmemUsedBytes : quint64

QML Type SceneEnvironment:

`(since 6.5)` | aoEnabled : bool
`(since 6.5)` | debugSettings : QtQuick3D::DebugSettings
`(since 6.5)` | fog : QtQuick3D::Fog
`(since 6.5)` | scissorRect : rect

QML Type SpecularGlossyMaterial:

`(since 6.5)` | vertexColorsEnabled : bool

QML Type TableView:

`(since 6.5)` | editTriggers : enumeration
`(since 6.5)` | resizableColumns : bool
`(since 6.5)` | resizableRows : bool

QML Type TapHandler:

`(since 6.5)` | exclusiveSignals : enumeration

QML Type TreeViewDelegate:

`(since 6.5)` | editing : bool

QML Type pickResult:

`(since 6.5)` | instanceIndex : int

### New QML Signals

`(since 6.5)` | frameDone(float timestep)
`(since 6.5)` | layoutChanged()

### New QML Methods

QML Type Locale:

`(since 6.5)` string | toString(int i)
`(since 6.5)` string | toString(Date date, FormatType format = LongFormat)
`(since 6.5)` string | toString(Date date, string format)
`(since 6.5)` string | toString(double f, char format = 'g', int precision = 6)

QML Type Qt:

`(since 6.5)` Component | createComponent(string moduleUri, string typeName, enumeration mode, QtObject parent)

QML Type TableView:

`(since 6.5)` void | closeEditor()
`(since 6.5)` void | edit(QModelIndex modelIndex)
`(since 6.5)` Item | itemAtIndex(QModelIndex index)
`(since 6.5)` void | positionViewAtIndex(QModelIndex index, PositionMode mode, point offset, rect subRect)

QML Type TestCase:

`(since 6.5)` bool | waitForPolish(object windowOrItem, int timeout = 5000)