What's New in Qt 5.10 | Qt 5.12 5.12.4

Qt 5.12 | What's New in Qt 5.10

Qt 5.12.4 Reference Documentation

# What's New in Qt 5.10

## New Features in Qt 5.10

### Qt Connectivity Module

- The UWP Bluetooth and Bluetooth LE backends can now be used on Windows 10.

### Qt Graphical Effects Module

- Added support for effects in core profile OpenGL contexts.

### Qt GUI Module

- Added the cross-platform Vulkan enablers, QVulkanInstance, QWindow with type VulkanSurface, and QVulkanWindow. These enablers are for Windows, Linux (xcb), and Android (level 23+).
- Added new flags and functions to QSurfaceFormat and QOpenGLWidget, to request sRGB-capable default/backing framebuffers.
- Added the cross-platform enablers for OpenGL ES 3.2 API, which are now accessible through QOpenGLExtraFunctions.
- Added support for more than 2 Gigabyte of pixel data in QImage.
- Added QFont::PreferNoShaping style strategy.

### Qt Network Module

- Upgraded OpenSSL back-end to use library v1.1.
- Persistent store of HSTS policies in QNAM (QSettings-based).

### Qt Quick Module

- Added a shapes plugin, providing a Shape type under QtQuick.Shapes 1.0, which enables adding stroked and filled paths into Qt Quick scenes. Such shapes are rendered either by generating geometry or by using the GL_NV_path_rendering extension.
- Added the Qt.labs.handlers plugin (tech. preview), providing TapHandler, PinchHandler, and DragHandler. These are lightweight objects for handling events from the mouse or the touchscreen in a device-agnostic way.

  Note: The plugin is available as a technology preview so it could could change in future releases.

- Added support for multi-sample framebuffers to QQuickItem layers using the layer.samples property.
- Added font.kerning and font.preferShaping properties for advanced control over the font shaping subsystem.
- Added advance property to Text to retrieve the typographical advance width.
- Added Image element to enable direct loading of ETC1 and ETC2 compressed textures from `.pkm` files on platforms where ETC1/2 are supported.

### Qt Quick Controls 2 Module

- Added support for effects in core profile OpenGL contexts.
- Added new QML types: Action, ActionGroup, and MenuBar.
- Added these new styles:
  - The Fusion style offers a platform agnostic desktop-oriented look'n'feel.
  - The Imagine style is based on image assets that can be provided using a predefined naming convention.
- Added actions support for it in:
  - buttons, delegates, menus,
  - exclusive button groups,
  - nested menus, and cascading sub-menus.
- Added support for:
  - wrapping SpinBox,
  - propagating palettes (only Fusion & Imagine styles for now),
  - specifying the default font and palette in qtquickcontrols2.conf,
  - and preliminary support for mnemonics in MenuItem (only shortcut functionality).
- Added the following new members:
  - TabBar::index, tabBar, and position attached properties.
  - Dialog::applied(), reset(), discarded(), and helpRequested() signals.
  - Dialog::standardButton() method.
  - StackView::empty property.
  - Menu::popup() and dismiss() methods.
  - Menu::actionAt(), addAction(), insertAction(), removeAction(), and takeAction() methods.
  - Menu::menuAt(), addMenu(), insertMenu(), removeMenu(), and takeMenu() methods.
  - Menu::count and currentIndex properties.
  - MenuItem::menu property.
  - Container::removeItem(Item) and takeItem(int) methods (TabBar and SwipeView).
  - Popup::enabled, mirrored, and opened properties.
  - `horizontal` and `vertical` properties to all controls that have the `orientation` property: RangeSlider, Slider, ScrollBar, ScrollIndicator, and SwipeView.
- Other improvements:
  - Added support for specifying a transition for StackView::clear().
  - Enabled support for ApplicationWindow::activeFocusControl attached property for a plain Window.
  - Enabled background dimming for popups without ApplicationWindow.
  - Updated Material style for DialogButtonBox to use the Android button layout.
  - Updated default style Slider and RangeSlider to visually indicate the progress/range.

### Qt SerialBus Module

- Added local echo flag to QCanBusFrame to mark frames that are sent from the local system to the CAN bus.

### Qt Virtual Keyboard Module

- Added the keyboard layouts for Hebrew, Serbian, Hungarian, Czech, Croatian, Bulgarian, Greek, Estonian, and Dutch.
- Added handwriting support for Farsi, Arabic, and CJK (Chinese/Japanese/Korean).
- Added new component (InputModeKey) for input mode switch.

### Qt WebEngine Module

- Updated to be based on Chromium 60.
- Added pause/resume functionality to download items.
- Added settings for blocking JavaScript focus and hiding scrollbars.
- Updated QWebEnginePage with more WebActions, which were supported by QWebPage earlier.
- Added QWebEnginePage::download for triggering downloads.

### Qt Widgets Module

- Added support for embedding a window into a QWidget on Android using QWidget::createWindowContainer().
- Added support for rendering and reading back (grabbing) offscreen content using QOpenGLWidget.
- Added `AA_DisableWindowContextHelpButton` attribute that prevents the automatic "What's this" button on dialogs on Windows.
- Added `tabStopDistance` property in QTextOption, QTextEdit, and QPlainTextEdit.
- Added `selectionEnd()`, `selectionLength()` to QLineEdit, complementing `selectionStart()`.
- Added QInputDialog::setDoubleStep to enable changing of the step amount for `getDouble()`.
- Added `isPersistentEditorOpen()` to QAbstractItemView, QTreeWidget, QTableWidget, and QListWidget.
- Added new QStyle::StyleHint, `SH_TitleBar_ShowToolTipsOnButtons`.
- Added support for specifying custom internal texture formats in QOpenGLWidget.

## New Modules

- Qt Network Authorization - Provides support for OAuth1 and OAuth2.
- Qt Speech - Enables text-to-speech in Qt Applications.

These modules were previously released as technology preview and are now fully supported Qt add-on modules.

## Technology Preview Modules

- Qt Remote Objects (TP2) - Sharing QObject interfaces (signals, slots, and properties) between processes or devices.
- Qt WebGL Streaming Plugin - Enables streaming Qt application to a web browser over the network.

## Deprecated Functionality

- Qt Script

Deprecated modules are still included in Qt 5.10, but are considered for removal in future releases.

## List of API Changes

The pages below contain a list of API changes in Qt 5.10:

- New Classes and Functions in Qt 5.10
- Obsolete Classes

## Additions to Other Qt 5 Releases

- What's New in Qt 5.9
- What's New in Qt 5.8
- What's New in Qt 5.7
- What's New in Qt 5.6
- What's New in Qt 5.5
- What's New in Qt 5.4
- What's New in Qt 5.3
- What's New in Qt 5.2
- What's New in Qt 5.1
- What's New in Qt 5.0