Qt 6.3 的新功能

Qt 6.3 中的新模块和还原模块

Qt 6.3 adds the following module:

Qt 6.3 reintroduces the following modules that were not present in Qt 6.2. All listed modules were ported to Qt 6 and the CMake build system.

A more detailed list of changes to each module can be found in Qt 6 中的 Qt 模块变化 .

Qt 6.3 中的新特征

Qt Core 模块

Qt GUI 模块

Qt Quick 模块

  • 添加的新项: TreeView .
  • 所有 pointer handlers have settable parent 特性。
  • HoverHandler and WheelHandler have a 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.

  • QQuickItem::clipRect () now provides the region visible in the viewport (the parent Flickable or Window ), and can be used to limit scene graph node vertices as an optimization in custom items, at the cost of having updatePaintNode () called more often. See docs about the new QQuickItem::ItemObservesViewport and QQuickItem::ItemIsViewport flags.
  • To save memory and startup time, 文本 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 ).
  • 文本 now renders horizontal rules from HTML or Markdown.
  • 文本 , horizontal rules and underline/overline/strikethrough lines can be colored by CSS rules included in HTML source.
    import QtQuick
    Text {
        textFormat: Text.RichText
        wrapMode: Text.WordWrap
        width: 440
        font.pointSize: 12
        text: `<p><u style="color: green;">green with underline</u>
                  <span style="text-decoration: underline; text-decoration-color: green;">
                    green underline</span></p>
               <p><s style="background-color: lightgrey;">plain strikethrough</s>
                  <span style="text-decoration: line-through; text-decoration-color: orange;">
                    orange strikethrough</span></p>
               <p><span style="text-decoration: overline;">plain overline</span>
                  <span style="text-decoration: overline; text-decoration-color: red;">
                    red overline</span></p>`
    }
    							
  • QQuickItem::dumpItemTree () has been added; it can be called from C++ (similar to QObject::dumpObjectTree ()) or from QML, to show the qDebug -operator output for an item and all its children, indented to show the tree structure.
  • TapHandler tapped , singleTapped and doubleTapped signals now have two arguments: the QEventPoint instance, and the button being tapped. If you need a signal handler, you should write an explicit function to receive those arguments:
    onTapped: function(point, button) { ... }
    onDoubleTapped: (point, button)=> ...
    							
  • 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.

Qt Quick Controls 模块

Qt Quick Dialogs 模块

  • 添加 FolderDialog and MessageDialog . These are native dialogs on platforms that support it, and non-native Qt Quick dialogs on other platforms.

    The non-native dialogs support all of the non-native styles: Basic, Fusion, Imagine, Material and Universal.

Qt Widgets 模块

  • QToolBar now supports scrolling with a kinetic wheel or track pad.

Several new QStyle enum values are available to allow styles to customize additional look and feel aspects of a widget-based UI:

Qt Network 模块

  • 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.
  • 添加新的公共 CMake API:

Qt Quick 3D 模块

  • 添加 ReflectionProbe , making it possible for models to show reflections.
  • Particles3D: New ParticleCustomShape3D element which loads emitting shapes from custom CBOR binary files.
  • Particles3D: Sprite particles now have support for the 3D environment lights.
  • Particles3D: New DynamicBurst element for declarative dynamic emitting and for emitting at trail start/end times.
  • 添加 ResourceLoader component for explicit setting of resource lifetimes (in Technical Preview)
  • PrincipledMaterial : Added support for ClearCoat, Transmission, and Refraction.
  • glTF2: Importers now support the following additional extensions: KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_transmission, KHR_materials_volume

Qt WebEngine 模块

  • 现在采用 Python 3 而不是 Python 2 进行构建
  • Added API for replacing QML touch selection menu
  • 添加新的公共 CMake API:

Qt Data Visualization 模块

Qt Positioning 模块

  • 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.
  • 添加支持 presentation-time 协议。
  • Added support for multiple input method protocols in the same server, in order to support clients from different sources.

平台的变化

技术预览平台

WebAssembly

Several improvements have been made for Qt for WebAssembly. See the platform documentation at Qt for WebAssembly 了解细节。

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.
  • Added multi-ABI build for CMake, see QT_ANDROID_ABIS .
  • 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:

Additions to All Qt 6 Releases

Qt 6.0 中的新类和函数

A list of new APIs in Qt 6.0.

Qt 6.1 中的新类和函数

A list of new APIs in Qt 6.1.

Qt 6.2 中的新类和函数

A list of new APIs in Qt 6.2.

Qt 6.3 中的新类和函数

A list of new APIs in Qt 6.3.

Qt 6.4 中的新类和函数

A list of new APIs in Qt 6.4.

Qt 6.5 中的新类和函数

A list of new APIs in Qt 6.5.

Qt 6.6 中的新类和函数

A list of new APIs in Qt 6.6.

Qt 6.0 的新功能

Lists the new features in Qt 6.0.

Qt 6.1 的新功能

Lists the new features in Qt 6.1.

Qt 6.2 的新功能

Lists the new features in Qt 6.2.

Qt 6.3 的新功能

Lists the new features in Qt 6.3.

Qt 6.4 的新功能

Lists the new features in Qt 6.4.

Qt 6.5 的新功能

Lists the new features in Qt 6.5.

Qt 6.6 的新功能

Lists the new features in Qt 6.6.