New Features in Qt 5.10

From Qt Wiki
Jump to: navigation, search

Note: This page is work in progress and should not be considered as final list of Qt 5.10 features before the beta release.

New Features (within existing modules)

  • Qt Core
    • Added rudimentary implementation of QStringView. It is missing some (important) const-QString functions, but is fully functional as an interface type. To be completed for Qt 5.11.
    • Added many more functions to QLatin1String, too, co-evolving QLatin1String as the const char*-Latin-1-version of QStringView.
    • Added QIODevice::skip() to improve performance in read operations.
    • Explicitly little and big-endian integer types exposed (for instance qint16_le, quint32_be) for machine-independent data-type parsing.
    • Added QRandomGenerator providing a simple API for high-quality seed-less random numbers.
    • Added accessors for metadata time fields of files to QFileInfo.
    • Added QSemaphoreReleaser a RAII-style class for QSemaphore.
    • Added QKeyValueIterator for more efficient iteration over keys of an associative container
  • Qt GUI
    • Added cross-platform Vulkan enablers for Windows, Linux (xcb) and Android (level 23+): QVulkanInstance, QWindow with type VulkanSurface, and QVulkanWindow
    • Added new flags and functions to QSurfaceFormat and QOpenGLWidget to request sRGB-capable default/backing framebuffers
    • The OpenGL ES 3.2 API is now exposed in a cross-platform manner via QOpenGLExtraFunctions.
    • QImages can now use more than 2GByte of pixel data.
    • Added QFont::PreferNoShaping style strategy.
  • Qt Widgets
    • QWidget::createWindowContainer() is now functional on Android
    • QOpenGLWidget is now usable for rendering and reading back (grabbing) offscreen content.
    • 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 setDoubleStep to QInputDialog, to enable changing of the step amount for getDouble()
    • Added isPersistentEditorOpen() to QAbstractItemView, QTreeWidget, QTableWidget and QListWidget
    • Added new style hint: SH_TitleBar_ShowToolTipsOnButtons
    • Added support for specifying custom internal texture formats in QOpenGLWidget
    • QDockWidget acquired the ability to be dropped together side by side
  • Qt Network
    • OpenSSL 1.1 back-end.
    • Persistent store of HSTS policies in QNAM (QSettings-based).
    • Implemented the h2c procotol upgrade used by non-SSL HTTP/2.
  • Qt Quick
    • Added a shapes plugin, providing a Shape type under QtQuick.Shapes 1.0. This allows 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, providing TapHandler, PinchHandler and DragHandler. These are the beginnings of the Pointer Handlers which we have been talking about for some time: lightweight objects for handling events from the mouse or the touchscreen in a device-agnostic way.
    • QQuickItem layers can now request to be backed by multisample framebuffers via the property layer.samples
    • 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 support for direct loading of ETC1 and ETC2 compressed textures from .pkm files. (on platforms where ETC1/2 are supported)
  • Qt Quick Controls 2
    • Introduced new QML types: Action, ActionGroup, MenuBar
    • Introduced 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 support for:
      • actions and actions in buttons, delegates, and menus
      • exclusive button groups
      • nested menus, and cascading sub-menus
      • wrapping spinboxes
      • propagating palettes (only Fusion & Imagine styles for now, others coming later)
      • specifying the default font and palette in qtquickcontrols2.conf
      • preliminary support for mnemonics in MenuItem (only shortcut functionality, not yet visualized)
    • Added 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 had an "orientation" property: RangeSlider, Slider, ScrollBar, ScrollIndicator, SwipeView
    • Other improvements:
      • Added support for specifying a transition for StackView::clear()
      • Made ApplicationWindow::activeFocusControl work with a plain Window
      • Made background dimming for popups work without ApplicationWindow
      • Made Material style DialogButtonBox use the Android button layout
      • Made Default style Slider and RangeSlider visually indicate the progress/range
  • Qt 3D
    • Tech Preview of Skeletal Animation system
    • Animation clocks: Control playback speed of one or more animators from a clock
    • Framebuffer blit frame graph node
    • Proximity filter frame graph node
    • Improved layer filtering frame graph node
    • Shader graphs: dynamically generate fragment shaders from graph based description
    • Sprite sheet support
    • Point and line picking support
    • Camera viewAll command
    • Optional SIMD support
    • Scene2D: Embed Qt Quick content into Qt 3D and interact with it
  • Qt Graphical Effects
    • The effects are now functional also in core profile OpenGL contexts.
  • Qt WebEngine
    • Updated to Chromium 60.
    • Pause/resume added to download items.
    • Added settings for allowing window activation from JavaScript.
    • Added settings for hiding scrollbars.
    • More WebActions that used to be in QWebPage added to QWebEnginePage.
    • New method QWebEnginePage::download for starting downloads programmatically.
  • Qt Serial Bus
    • Added local echo flag to QCanBusFrame to mark frames that are sent from the local system to the CAN bus.
  • Qt Connectivity
    • The UWP bluetooth and BLE backends can now be used on desktop Windows (>= 10) too.
  • Qt Virtual Keyboard
    • Added the following keyboard layouts: 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.
    • OpenWNN:
      • Fixed crash when pressing the space after entering a smiley.
      • Fixed and optimized OpenWNN engine
  • Qt X11 Extras
    • Added new peekEventQueue() API to peek into the XCB event queue. This enables porting certain Qt4-based applications to Qt5 (those using Xlib's event handling functions to peek into the X11 event queue).
  • Emulator
    • Support multiple screens
    • Plugin support
    • Device mockups are QML based
  • Device Creation / Boot2Qt
    • Device images updated to Yocto 2.3 (pyro)

New Modules

  • Qt Network Authentication - Provides support for OAuth1 & OAuth2
  • Qt Speech - Supports text-to-speech

Platform Changes

  • Jira tracking for 5.10 changes:

Technology Preview Modules

  • Qt Remote Objects (TP2) - A module that allows you to easily share QObject interfaces (Signals/Slots/Properties) between processes or devices.
  • Qt WebGL Streaming Plugin - Stream applications to browsers over the network

Deprecated Modules

The following modules are part of Qt 5.10 release, but deprecated and considered for removal in subsequent releases of Qt:

  • Qt Script

Configurations

Release Information [edit]
Qt Version Overview Tools and Versions New Features Changes Known Issues
Qt 5.0 Qt 5.0.0Qt 5.0.1 Release New Features in Qt 5.0 Qt 5.0 Changes Qt 5.0.0 Beta 1Qt 5.0.0 Beta 2Qt 5.0.0 RC 1Qt 5.0.0 RC 2
Qt 5.0.0Qt 5.0.1Qt 5.0.2 Known Issues
Qt 5.1 Qt 5.1 Release New Features in Qt 5.1 Qt 5.1.0 Change Files Qt 5.1.0 Beta 1Qt 5.1.0 RC 1
Qt 5.1.0Qt 5.1.1 Known Issues
Qt 5.2 Qt 5.2 Release New Features in Qt 5.2 Qt 5.2.0Qt 5.2.1 Change Files Qt 5.2.0 Beta 1Qt 5.2.0 RC 1
Qt 5.2.0Qt 5.2.1 Known Issues
Qt 5.3 Qt 5.3 Release Qt 5.3 Tools and Versions New Features in Qt 5.3 Qt 5.3.0Qt 5.3.1Qt 5.3.2 Change Files Qt 5.3.0 Beta 1Qt 5.3.0 RC 1
Qt 5.3.0Qt 5.3.1Qt 5.3.2 Known Issues
Qt 5.4 Qt 5.4 Release Qt 5.4 Tools and Versions New Features in Qt 5.4 Qt 5.4.0Qt 5.4.1Qt 5.4.2 Change Files Qt 5.4.0Qt 5.4.1Qt 5.4.2 Known Issues
Qt 5.5 Qt 5.5 Release Qt 5.5 Tools and Versions New Features in Qt 5.5 Qt 5.5.0Qt 5.5.1 Change Files Qt 5.5.0Qt 5.5.1 Known Issues
Qt 5.6 Qt 5.6 Release Qt 5.6 Tools and Versions New Features in Qt 5.6 Qt 5.6.0Qt 5.6.1Qt 5.6.2 Change Files Qt 5.6.0Qt 5.6.1Qt 5.6.2 Known Issues
Qt 5.7 Qt 5.7 Release Qt 5.7 Tools and Versions New Features in Qt 5.7 Qt 5.7.0Qt 5.7.1 Change Files Qt 5.7.0Qt 5.7.1 Known Issues
Qt 5.8 Qt 5.8 Release Qt 5.8 Tools and Versions New Features in Qt 5.8 Qt 5.8.0 Change Files Qt 5.8.0 Known Issues
Qt 5.9 Qt 5.9 Release Qt 5.9 Tools and Versions New Features in Qt 5.9 Qt 5.9.0 Change Files Qt 5.9.0 Known Issues
Qt 5.10 Qt 5.10 Release Qt 5.10 Tools and Versions New Features in Qt 5.10 Qt 5.10.0 Change Files Qt 5.10.0 Known Issues