QProcessEnvironment
gained a new enum and constructor that allows you to choose whether the process environment shall be inherited from the parent process when a respective
QProcess
is launched.
Time formats used by
QLocale
,
QTime
and
QDateTime
's parsing and serialization now recognize 'aP' and 'Ap' format specifiers to obtain an AM/PM indicator, using the locale-appropriate case for the indicator, where previously the author of a time format had to pick a case that might conflict with the user's locale. For
QTime
and
QDateTime
the locale is always C, whose indicators are uppercase. For
QLocale
, the case will now match that of amText() or pmText(). Previously, 'aP' would have been read as a lower-case indicator followed by a 'P' and 'Ap' as an upper-case indicator followed by a 'p'. The 'P' or 'p' will now be treated as part of the format specifier: if the prior behavior is desired, either use 'APp' or 'apP' as format specifier or quote the 'p' or 'P' in the format. The prior 'a', 'ap', 'A' and 'AP' specifiers are otherwise unaffected.
URL handlers passed to
QDesktopServices::setUrlHandler
() must now be removed by calling
unsetUrlHandler
() before they are destroyed. Relying on the handler's destructor to implicitly unset them is deprecated.
QVulkanWindow
now enables all Vulkan 1.0 features that are reported as supported by the physical device.
HoverHandler
and
WheelHandler
拥有
blocking
property to control whether the hover and wheel events respectively propagate to items and handlers behind the handler's
parent
.
TapHandler
now has one more
gesturePolicy
值:
DragWithinBounds
; it is similar to
WithinBounds
, except that even if the user drags while holding the point pressed,
timeHeld
is not reset during dragging, and the
longPressed
signal is emitted regardless of the drag threshold, if the user holds it that long. This is useful for implementing press-drag-release components such as menus (like the pie menu in the pointer handlers example) while using
timeHeld
to directly drive an "opening" animation.
To save memory and startup time,
Text
and
TextEdit
now avoid generating scene graph nodes for large portions of text that are invisible because of falling outside the viewport (
Flickable
or
Window
).
Text
now renders horizontal rules from HTML or Markdown.
在
Text
, horizontal rules and underline/overline/strikethrough lines can be colored by CSS rules included in HTML source.
DragHandler
activeTranslation
now holds the amount of movement since the drag gesture began.
persistentTranslation
holds the accumulated sum of movement that has occurred during subsequent drag gestures, and can be reset to arbitrary values between gestures.
QNetworkInformation
learned transportMedium. A property that returns the transport medium of the primary network interface.
QNetworkInformation
also learned isMetered. A property that returns whether the network is metered.
Qt QML 模块
Added tech preview QML type compiler (
qmltc
) that compiles QML type structure to C++.
Added several new warnings to qmllint which now uses compiler infrastructure.
The header only qmlintegration module allows to mark types for registration in a QML module, without adding a dependency to qtdeclarative. Those can then be added to a QML module via the new
qt_generate_foreign_qml_types()
CMake API.
qmlcachegen compiles suitable functions and expressions to C++ now, for improved performance.
glTF2: Importers now support the following additional extensions: KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_transmission, KHR_materials_volume
New
DirectionAccuracy
attribute is added for Android and iOS platforms. It represents the accuracy of the provided bearing.
Qt Bluetooth 模块
Extended the Windows implementation of
QBluetoothLocalDevice
. It reports the adapter state correctly, and allows to toggle its state. Support for connected/disconnected devices tracking is still missing.
Extended
QBluetoothDeviceInfo
API to expose Bluetooth Low Energy service data as published during the advertisement.
Qt Wayland Compositor 模块
Added an API to create custom shell extensions. For instructions on usage, see
the example
.
添加
Qt Shell
which supports all windowing system features available in Qt.
Drag-and-drop now works for asyncify-enabled builds.
Added support for tunneling TCP and UDP sockets over WebSockets, using Emscriptens
Emulated POSIX TCP Sockets over WebSockets
. This support is limited to async sockets on the main thread.
ARM 中的 Windows
Windows on ARM64 remains in Technology Preview as problems with optimized builds of Qt could not be resolved yet.
移动平台
Android
The
在 APP 中购买演示
and Qt 3D: Planets QML Example had android specific improvements.
Updated Gradle to 7.2.0 and the Android Gradle Plugin (AGP) to 7.0.2 (requires JDK 11 or above).
Added missing _make_aab target for CMake Android projects.
QML modules are now staged to a common directory named "android-qml" under the user's build folder. This acts as a common import path for
The androiddeployqt Tool
.
The QML Test Bench now works for Android builds.
iOS
CMake-based projects now generate a default launch screen.
嵌入式平台
Boot to Qt
Boot to Qt 堆栈已更新为使用 Yocto 3.4 (honister)。
Qt PDF and Qt Language Server were included in Boot to Qt stack.
其它
Wayland
实现支持
DataDeviceV3
协议。
Upgraded
wl_seat
support to version 7.
Added support for selecting input method protocol, if the server supports multiple interfaces. This can be done by setting QT_WAYLAND_TEXT_INPUT_PROTOCOL to the name of the protocol.
API 变化列表
These pages contain an overview of API changes in Qt 6.3: