summaryrefslogtreecommitdiffstats
path: root/doc/src/whatsnew/whatsnew610.qdoc
blob: aa0e86efc34c574a8813349b8e8c1481754b9966 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \page whatsnew610.html
    \title What's New in Qt 6.10
    \ingroup whatsnewqt6
    \brief Lists the new features in Qt 6.10.

    \section1 New and Restored Modules in Qt 6.10

    Qt 6.10 adds the following modules and tools:

    \list
    \endlist

    \section1 Removed Modules in Qt 6.10

    The following modules are deprecated. We strongly advise against using them
    in new code.

    \list
      \li QtCharts
      \li QtDataVisualization
    \endlist

    \section1 New Features in Qt 6.10

    \section2 Qt Core Module
    \list
      \li QLocale is now updated to CLDR v46.1
      \li QLocale::uiLanguages() now includes truncated entries and is better-ordered
      \li QLocale::toString() overloads for integral type now accept precision and width
      \li The system locale is now distinguished in qDebug() output from the
          CLDR-derived one for the same language, script and territory
      \li QLocale::toString(double, ...)'s exponent separator now again matches the case
          requested
      \li QCalendar::daysInMonth() for unspecified year now gives the maximal value
      \li The new QRangeModel class provides an implementation of QAbstractItemModel that can
          operate on any C++ range.
      \li {QXmlStreamReader::}{readRawInnerData()} for retrieving the raw inner XML content of an element.
      \li Error handling API for {QXmlStreamWriter} with {QXmlStreamWriter::}{Error} enum,
          {QXmlStreamWriter::}{error()}, {QXmlStreamWriter::}{errorString()},
          and {QXmlStreamWriter::}{raiseError()} functions.
      \li {QXmlStreamWriter::}{stopWritingOnError()} property, allowing users to control
          whether output halts immediately after encountering an error.
      \li Added \l QFuture::cancelChain() to cancel the entire continuation
          chain using any non-finished QFuture from the chain.
      \li The new qEnvironmentVariableIntegerValue returns the numerical value of an environment
          variable, or \c{std::nullopt} if the variable is not set or doesn't hold an integer.
      \li QFileInfo::isOther() returns true for file system entries that are neither a directory,
          regular file, or symbolic link.
      \li Added QSortFilterProxyModel::endFilterChange() taking a
          \l{QSortFilterProxyModel::}{Direction} parameter, to balance a previous call to
          \l{QSortFilterProxyModel::}{endFilterChange()}. These APIs replace
          \l{QSortFilterProxyModel::}{invalidateFilter()}, which will be deprecated starting from
          Qt 6.13.
      \li Two new overloads of QMetaObject::connect() make it possible to connect the
          QMetaMethod of a signal to a slot function or lambda.
      \li QCBorValue::toStringView() and QJsonValue::toStringView() return a view of the
          string stored in the value, without any allocations.
      \li Use \l{QDataStream::operator bool()} and \l{QTextStream::operator bool()}
          to check whether the stream is in an error state.
      \li Use \l{QByteArray::}{nullTerminate()} to add a null terminator to a
          QByteArray or QString, e.g. after constructing them via
          \l{QByteArray::fromRawData()}. Test whether the array or string is null
          terminated with \l{QByteArray::}{isNullTerminated()}.
      \li QByteArray can now implicitly convert to a \l{QByteArray::operator std::string_view()}
          {std::string_view}.
    \endlist

    \section2 Qt Dbus Module
    \list
      \li QDBusConnectionInterface::serviceCredentials() returns the connection
          credentials for the process currently holding the specified bus service.
    \endlist

    \section2 Qt Graphs Module
    \list
      \li Filled surface graph type added: \l{QSurface3DSeries::DrawFlag::DrawFilledSurface}{DrawFilledSurface}
      \li Text elide support for 2D axes added: \l{QAbstractAxis::textElide}
      \li Pie slice label hiding support for small sized slices added:
          \l{QPieSeries::angleSpanVisibleLimit}, \l{QPieSeries::angleSpanVisibleMode}, \l{QPieSeries::VisibleMode}
      \li Multi-axis support for 2D graphs added: \l{QAbstractSeries::axisX}, \l{QAbstractSeries::axisY}
      \li Hover support for 2D series added: \l{QAbstractSeries::isHovered}
      \li Support for controlling plot area clipping in 2D graphs added: \l{QGraphsView::clipPlotArea}
      \li Support for querying data point coordinates in LineSeries added: \l{QLineSeries::getDataPointCoordinates}
      \li Support for rendering a slice into an image in Bars3D and Surface3D added:
          \l{Q3DBarsWidgetItem::renderSliceToImage}, \l{Q3DSurfaceWidgetItem::renderSliceToImage},
          \l{QtGraphs3D::SliceType}
      \li Added \l{Bars3DNode}, \l{Scatter3DNode}, and \l{Surface3DNode} for
          adding 3D graphs in QtQuick3D applications inside View3Ds
      \li Graph draw ordering support for 2D graphs added: \l{QAbstractSeries::drawOrder}
      \li Categorized logging support added
    \endlist

    \section2 Qt GRPC Module
    \list
    \endlist

    \section2 Qt GUI Module
    \list
        \li QStyleHints::accessibility provides access to user accessibility
            preferences, such as whether the system has enabled a setting for increased
            contrast.
        \li Added \l {QAccessibilityHints} to access individual accessibility
            settings.
        \li QRhi: Added support for enumerating 3D graphics adapters (physical devices),
            when running on Direct 3D 11, 12, or Vulkan, via the \l{QRhi::}{enumerateAdapters()}
            function.
        \li Added QSurfaceFormat::setColorComponentType() to allow requesting a
            floating-point color buffer.
        \li QPainterPath::setCachingEnabled() can be used to turn on the caching
            of calculated values, increasing performance for certain operations
            at the expense of additional memory use.
        \li Added QPainterPath::trimmed() to return a section of the path.
    \endlist

    \section2 Qt HttpServer Module
    \list
    \endlist

    \section2 Qt Multimedia Module
    \list
        \li Added a native PipeWire audio backend.
        \li Audio pitch compensation for the FFmpeg-based QMediaPlayer based on the excellent
            \l{https://signalsmith-audio.co.uk/code/stretch/}{Signalsmith Stretch library}.
            The behavior can be customized via the \l {QMediaPlayer::}{pitchCompensation}
            property.
    \endlist

    \section2 Qt Network Module
    \list
    \endlist

    \section2 Qt Network Auth Module
    \list
    \endlist

    \section2 Qt Protobuf Module
    \list
    \endlist

    \section2 Qt QML Module
    \list
        \li Added a new TreeModel QML type that allows the definition  of a tree structure in
            the QML file and works with TreeView.
        \li Added SortFilterProxyModel QML type to sort and filter model data.
            This feature is in tech preview.
    \endlist

    \section2 Qt Quick Module
    \list
        \li Added FlexboxLayout QML type to arrange the quick items in flexible
            way as similar to
            \l{https://www.w3.org/TR/css-flexbox-1/}{CSS Flexbox}. This feature
            is in tech preview.
    \endlist

    \section2 Qt Quick Controls Module
    \list
    \endlist

    \section2 Qt Quick Effects Module
    \list
    \endlist

    \section2 Qt Quick 3D Module
    \list
    \endlist

    \section2 Qt Quick 3D XR Module
    \list
    \endlist

    \section2 Qt Quick VectorImage Module
    \list
      \li Added support for animated SVGs that matches animation support in Qt SVG.
    \endlist

    \section2 Qt Serial Port Module
    \list
      \li Added support for limiting write buffer size using \l {QSerialPort::}
          {writeBufferSize} property.
    \endlist

    \section2 Qt Sql Module
    \list
    \endlist


    \section2 Qt SVG Module
    \list
      \li Added support for CSS animations for some selected properties, such as colors,
          opacities and transforms.
    \endlist

    \section2 Qt Test Module
    \list
      \li Data-driven benchmarks now identify both global and local data in plaintext names
      \li Backtraces from lldb are now disabled on Apple Silicon
      \li When QTest prints floating-point values in a comparison, it now gives full
          precision and includes a hexfloat version
    \endlist

    \section2 Qt VirtualKeyboard Module
    \list
    \endlist

    \section2 Qt WebEngine Module
    \list
      \li Added support for adding additional trusted CA certificates to a website profile
          without adding them to the platform certificate store:
          \l {QWebEngineProfileBuilder::}{setAdditionalTrustedCertificates}
    \endlist

    \section2 Qt Widgets Module
    \list
      \li Added support for increased contrast mode for the fusion, macOS, and Windows 11
          widgets styles.
      \li Default editor event handling in item views has moved into the new
          \l{QAbstractItemDelegate::handleEditorEvent()} function, which custom
          event handlers can use to continue with standard event handling.
      \li Use \l{QListWidget::}{setSupportedDragActions()} in QListWidget,
          QTableWidget, and QTreeWidget to change the supported drag actions.
      \li The new QLayout::horizontalSizeConstraint and
          QLayout::horizontalSizeConstraint properties allow individually setting
          the horizontal and vertical size constraints of the widget.
    \endlist

    \section2 Qt XML Module
    \list
    \endlist

    \section2 Qt Mqtt Module
    \list
      \li Add support for WebSockets/Secure WebSockets
    \endlist

    \section1 Tools

    \section2 QDoc Documentation Generator
    \list
      \li QDoc can now automatically add “view source” links to every C++ API
          declaration. Enable the feature with the new \l {url.sources-variable}
          {url.sources} family of configuration variables
          (\c {url.sources.enabled}, \c {url.sources.rootdir},
           \c {url.sources.linktext}).
      \li QDoc now detects circular inheritance in QML types using Floyd’s
          cycle-finding algorithm and reports the problem instead of getting
          stuck in an infinite loop.
      \li QML property groups defined in \c {.qml} files are recognised and
          shown as a single grouped property when you document them with
          \c \qmlproperty commands.
      \li Source files generated by Qt tools (\c moc_, \c uic_, \c qrc_, etc.)
          are now skipped automatically, which shortens QDoc build times on
          large projects.
      \li If you set the \l {usealttextastitle-variable} {usealttextastitle}
          configuration variable, QDoc copies each image’s \c alt text into a
          HTML \c title attribute, improving accessibility/tool-tips.
      \li The data type shown for a QML property inside a \c {.qml} file can now
          be overridden directly in the \c \qmlproperty command, even for
          non-aliased properties.
      \li The \l {documentationinheaders-variable} {documentationinheaders}
          option is no longer offered as a technical preview; rather, it is
          considered stable. It was first introduced in Qt 6.9.
    \endlist

    \section1 Platform Changes

    \section2 Build System Changes

    \list
    \endlist

    \section2 Desktop Platforms

    \section3 Windows
    \list
    \endlist

    \section3 macOS
    \list
      \li Windows that opt into extended dynamic range (EDR) now trigger expose
          event on screen brightness change
      \li The titleUIElement accessibility property is now supported
      \li Service menu integration is now rich-text aware
      \li QOperatingSystemVersion::MacOSTahoe represents macOS 26
    \endlist

    \section3 Wayland Client on Linux
    \list
    \endlist

    \section2 Mobile Platforms

    \section3 Android
    \list
    \endlist

    \section3 iOS
    \list
      \li Added QPointingDevice support for Apple Pencil
      \li Fixed rotation for standard Apple Pencil
      \li Added support for hover feature for Apple Pencil 2nd gen or later
      \li Windows that opt into extended dynamic range (EDR) now trigger expose
          event on screen brightness change
      \li Update requests will now be paused when the app moves out of active state
      \li QScreen now also reports inverted screen orientations
      \li RLIMIT_STACK now reflects the effective stack size
    \endlist

    \section2 Embedded Platforms

    \section3 Boot to Qt
    \list
    \endlist

    \section3 RealTime OSs
    \list
    \endlist

    \section1 List of API Changes

    These pages contain an overview of API changes in Qt 6.10:
    \list
        \li \l {New Classes and Functions in Qt 6.10}
        \li \l {Obsolete Classes}
    \endlist
*/

/*!
    \page newclasses610.html
    \title New Classes and Functions in Qt 6.10
    \ingroup whatsnewqt6-api
    \brief A list of new APIs in Qt 6.10.

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

    \sincelist 6.10
*/