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

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:

Additions to Other Qt 5 Releases