New Features in Qt 5.15
Note that this list should be considered as work in progress until the first Beta release.
New Features (within existing modules)
- Qt 3D
- Improved profiling and troubleshooting support
- QSortPolicy add Uniform mode to control whether uniform minification needs to be performed or not
- QMouseDevice add updateAxesContinuously property
- OpenGL Renderer is now isolated as a plugin
- Qt Core
- QFile::moveToTrash provides a cross platform API for moving files to the trash/recycling bin on Windows, macOS, and Linux desktop (implementing the freedesktop.org specification).
- QFileInfo::isJunction reports whether a file system entry is a Windows NTFS junction
- QRunnable's can now be created from std::function without having to subclass QRunnable.
- QThreadPool::start and tryStart can now take std::function and thereby also anonymous lambda functions as arguments.
- Added static template QDebug::toString function, which streams the given object into a QDebug instance that operates on a string, and then returns that string. This is useful for cases where you need the textual representation of an object for debugging, but cannot use operator<<, such as when passing a failure message to QVERIFY2.
- Qt GUI
- QColorSpace setters can now operate on invalid color spaces, making it possible to set primaries and transfer function independently.
- Many QImage scaling and conversion methods are now multithreaded.
- Qt Location
- Updated 3rdparty library earcut.
- Ported Map*ObjectPrivateQSG to the shader-based projection geometries.
- Added optional argument to Map.gitViewportToMapItems.
- Qt Multimedia
- Deprecated QMediaService and QMediaControl. And all plugin API.
- Introduced reverse playback for GStreamer.
- Introduced rendering to multiple surfaces.
- Introduced QVideoWidget::videoSurface(), QGraphicsVideoItem::videoSurface() and QDeclarativeVideoOutput::videoSurface().
- Introduced videoOutput property for MediaPlayer QML element.
- Introduced QVideoFrame::image().
- Added using of notify::zoom and notify::max-zoom for GStreamer Camerabin.
- Qt Network
- A new session ticket mechanism introduced by TLS 1.3 protocol is now supported by the OpenSSL backend.
- Timeouts for downloads and uploads can be now set for QNetworkRequest and QNetworkAccessManager.
- The minimum supported version of OpenSSL is 1.1.
- Qt QML
- Introduced inline components (ability to declare multiple QML components in the same file)
- Introduced required properties
- Added a declarative way of registering types to QML
- qmllint now has a better understanding of the code and warns about more deprecated QML features
- Added qmlformat tool which automatically formats any QML file according to the QML Coding Conventions.
- Added support for the Nullish Coalescing Operator (??).
- Added colorspace property on image nodes, making it possible to read color space and transform images to specific color spaces.
- Qt Quick
- Added a PathText type, which can be used together with Qt Quick Shapes to render text as geometry and not based on distance fields or pre-rendered textures. This can be useful for rendering large font sizes which would otherwise consume a lot of texture memory.
- Added Image.sourceClipRect to specify a clipping region, to request the image plugin to render a portion of an image source.
- Added cursorShape property to pointer handlers. Most pointer handlers (e.g. DragHandler) will change the cursor when the active state is true. HoverHandler will change it when the mouse is hovering over the Item that contains the HoverHandler.
- The opt-in preview of the graphics API independent rendering architecture now supports Metal on iOS as well.
- Qt Quick Controls 2
- Added HorizontalHeaderView and VerticalHeaderView to display header data in a TableView. Support flicking synchronization, and default, fusion, imagine, material, and universal delegate styles.
- Added selectTextByMouse property to ComboBox.
- Qt SerialBus
- Added CAN FD support to the VectorCAN plugin.
- Qt Test
- Qt Wayland Compositor
- Qt WebEngine
- Updated to be based on Chromium 80
- Switched to sandboxed network service.
- New API for reading subprocess id of page/view.
- WebEngineHistory::clear method added.
- Qt WebSockets
- Added public API to set the maximum frame size and message size.
- Qt Widgets
- QDoc can now generate DocBook.
- QDoc now generates output for C++ class and function template parameters.
- QDoc now generates correct output for scoped enums (enum classes).
- Use Android's native file dialog by default for open (file, multiple files, directory) and save operations.
- Move minSdkVersion & targetSdkVersion from AndroidManifest.xml to build.gradle (QTBUG-70817).
- Fix some examples on Android (QTBUG-80717, QTBUG-80716).
- Improve all Android documentation pages (QTBUG-80390).
- Added Qt Android Extras example: JNI Messenger.
- Introduced experimental support for Vulkan on the client side.
- Embedded Linux (eglfs)
- Added support for Vulkan, via VK_KHR_display, on NXP i.MX8 based devices. (in the eglfs_viv backend)
- Technology Preview: Support for running Qt Quick (2D) on top of Direct3D, Metal and Vulkan
- The new Rendering Hardware Interface abstraction layer allows you to run Qt Quick applications on other 3D graphics APIs
- Qt Quick 3D
- Post Processing Effects
- Custom Geometry API (C++ Meshes)
- Quaternions API for Node rotations
- Right-Handed Coordinate System (previously Right or Left)
- Improved Qt Quick 2D in 3D Scene support
- Performance improvements
- Spot Light Support
- Qt Lottie
- Bodymovin JSON renderer for After Effects animations
- Performance and stability improvements added
Technology Preview Modules
- Qt PDF
- Based on shared Pdfium version with Qt WebEngine
- Available on the same platforms Qt WebEngine are available on, plus iOS.
Qt for Automation
The automation modules only received bug fixes and no noteworthy feature additions.
To help preparing for the transition to Qt 6, numerous classes and member functions that will be removed from Qt 6.0 have been marked as deprecated in the Qt 5.15 release. Unless you define QT_NO_DEPRECATED_WARNINGS in your project, you will get compiler warnings for code that uses any deprecated APIs. Those warnings will explain which API to use instead. To disable any deprecated APIs completely, use the QT_DISABLE_DEPRECATED_BEFORE macro.
The following modules are part of Qt 5.15 release, but deprecated and considered for removal in subsequent releases of Qt:
- Qt Script
- Qt Quick Controls 1
- Qt XML Patterns
The following modules have been deprecated earlier and no longer part of the Qt 5.15 release: