What's New in Qt 6.0 | Qt 6.11
Description: Lists the new features in Qt 6.0.

- Qt 6.11
- What's new in Qt 6
- What's New in Qt 6.0
- Qt 6.11.1 Reference Documentation

# What's New in Qt 6.0

## Build System Changes in Qt 6

Building Qt from sources now requires CMake and Ninja. See Build System Changes in Qt 6 for more details on this and other changes in configure.

## Changes to Supported Modules

Qt 6.0 is streamlined compared to Qt 5 and some modules are no longer in the default installation of Qt 6.0. Because of the modularized structure of Qt, new modules or previous Qt 5 modules may appear in future releases of Qt 6. For more information, visit the All Modules page.

The Changes to Qt Modules in Qt 6 has a list of API changes.

## New Modules in Qt 6.0

The following are new modules in Qt 6.0.

- Qt 5 Core Compatibility APIs
- Qt 5 Compatibility APIs: Graphical Effects
- Qt Shader Tools - for graphics and compute shaders

## Removed Modules in Qt 6.0

The following are Qt 5 modules that are not in Qt 6.0. They may be re-introduced in a future release of Qt 6.

Module | qmake | Comments
--- | --- | ---
Qt for Android Extras | `androidextras` | See Changes to Qt Extras Modules
Qt Bluetooth | `bluetooth` |
Qt Charts | `charts` |
Qt Data Visualization | `datavisualization` |
Qt Graphical Effects |  | Available through Qt 5 Compatibility APIs: Graphical Effects. See successors in Qt 6.5: MultiEffect and Qt Quick Effect Maker.
Qt Location | `location` |
Qt Mac Extras | `macextras` | See Changes to Qt Extras Modules
Qt Multimedia | `multimedia` |
Qt Multimedia Widgets | `multimediawidgets`
Qt NFC | `nfc` |
Qt Positioning | `positioning` |
Qt Purchasing | `purchasing` |
Qt Quick Extras |  | Merged into Qt Quick Controls
Qt Remote Objects | `remoteobjects` |
Qt Script | `qtscript` |
Qt SCXML | `scxml` |
Qt Script Tools | `scripttools` |
Qt Sensors | `sensors` |
Qt Serial Bus | `serialbus` |
Qt Serial Port | `serialport` |
Qt Speech | `texttospeech` |
Qt WebChannel | `webchannel` |
Qt WebEngine | `webenginecore` |
Qt WebSockets | `websockets` |
Qt WebView | `webview` |
Qt Windows Extras | `winextras` | See Changes to Qt Extras Modules
Qt X11 Extras | `x11extras` | See Changes to Qt Extras Modules
Qt XML Patterns | `xmlpatterns` |

## New Features in Qt 6.0

### Qt QML Module

- QML Language
  - Added JavaScript URL object support, providing native URL handling in QML JavaScript code.
  - Allowed imports without version. If you omit the version from a QML import statement the latest version of the module is imported.
- Module System
  - Added `import` directive in qmldir files. This enables optional imports and declarative module imports, allowing modules to declare their dependencies explicitly.
  - Added qmlRegisterModuleImport() for procedurally adding imports to a module. Don't do this unless you know what you're doing.
  - Added support for specifying resource (`:/some/path`) paths in the QML2_IMPORT_PATH environment variable.
  - QML plugins can be optional now. The `optional` directive in qmldir files specifies that the plugin doesn't have to be loaded if the module's types are already present in the binary. This is commonly the case for modules like QtQuick or QtQml.
  - Introduced support for purely-redirecting QML modules that only import and re-export other modules without providing their own types.
- Type System
  - Introduced override behaviors QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_{APPEND|REPLACE|REPLACE_IF_NOT_DEFAULT} for QQmlListProperty, giving more control over QML operations on C++-declared list properties.
  - Added support for user-defined sequence types. Custom list types can now be registered and used directly in QML using QML_SEQUENTIAL_CONTAINER, enabling type-safe list properties without needing to wrap elements in JavaScript objects.
  - Introduced two-component revision format (Major, Minor) for QML type versioning, providing more granular control over API evolution.
  - Allowed singletons to be extended via QML_EXTENDED.
  - Allowed namespaces as extensions to types via QML_EXTENDED_NAMESPACE.
  - Allowed QML types from foreign namespaces via QML_FOREIGN_NAMESPACE.

## List of API Changes

These pages contain an overview of API changes in Qt 6.0:

- New Classes and Functions in Qt 6.0
- Obsolete Classes