New Features in Qt 5.10: Difference between revisions
Jump to navigation
Jump to search
(Added emulator) |
No edit summary |
||
(26 intermediate revisions by 16 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Developing with Qt::Qt 5]] | [[Category:Developing with Qt::Qt 5]] | ||
[[Category:Release]] | [[Category:Release]] | ||
'''New Features (within existing modules)''' | |||
* Qt Core | |||
'''New Features (within existing modules)''' | ** 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 (optionally 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 | * Qt GUI | ||
** Added cross-platform Vulkan enablers for Windows, Linux (xcb) and Android (level 23+): QVulkanInstance, QWindow with type VulkanSurface, and QVulkanWindow | ** Added cross-platform Vulkan enablers for Windows, Linux (xcb) and Android (level 23+): QVulkanInstance, QWindow with type VulkanSurface, and QVulkanWindow | ||
Line 9: | Line 16: | ||
** The OpenGL ES 3.2 API is now exposed in a cross-platform manner via QOpenGLExtraFunctions. | ** 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. | ** QImages can now use more than 2GByte of pixel data. | ||
** Added QFont::PreferNoShaping style strategy. | |||
* Qt Widgets | * Qt Widgets | ||
** QWidget::createWindowContainer() is now functional on Android | ** QWidget::createWindowContainer() is now functional on Android | ||
Line 20: | Line 28: | ||
** Added support for specifying custom internal texture formats in QOpenGLWidget | ** Added support for specifying custom internal texture formats in QOpenGLWidget | ||
** QDockWidget acquired the ability to be dropped together side by side | ** 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 QML | |||
** Added support for enum declarations in QML. | |||
** Added support for retranslation. | |||
* Qt Quick | * 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 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. | ** 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 | ** 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 | * Qt Quick Controls 2 | ||
** Introduced new QML types: Action, ActionGroup, MenuBar | ** Introduced new QML types: Action, ActionGroup, MenuBar | ||
Line 30: | Line 48: | ||
*** the Imagine style is based on image assets that can be provided using a predefined naming convention | *** the Imagine style is based on image assets that can be provided using a predefined naming convention | ||
** Added support for: | ** Added support for: | ||
*** actions and | *** actions and icons in buttons, delegates, and menus | ||
*** exclusive button groups | *** non-exclusive button groups | ||
*** nested menus, and cascading sub-menus | *** nested menus, and cascading sub-menus | ||
*** wrapping spinboxes | *** wrapping spinboxes | ||
*** propagating palettes (only Fusion & Imagine styles for now, others coming later) | *** propagating palettes (only Default, Fusion & Imagine styles for now, others coming later) | ||
*** specifying the default font and palette in qtquickcontrols2.conf | *** specifying the default font and palette in qtquickcontrols2.conf | ||
*** | *** mnemonics in buttons, menus and menubars | ||
** Added new members: | ** Added new members: | ||
*** TabBar::index, tabBar, and position attached properties: | *** TabBar::index, tabBar, and position attached properties: | ||
Line 56: | Line 74: | ||
*** Made Material style DialogButtonBox use the Android button layout | *** Made Material style DialogButtonBox use the Android button layout | ||
*** Made Default style Slider and RangeSlider visually indicate the progress/range | *** 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 | * Qt Graphical Effects | ||
** The effects are now functional also in core profile OpenGL contexts. | ** The effects are now functional also in core profile OpenGL contexts. | ||
* Qt WebEngine | * Qt WebEngine | ||
** Updated to | ** Updated to Chromium 61. | ||
** Pause/resume added to download items | ** 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 | ** More WebActions that used to be in QWebPage added to QWebEnginePage. | ||
** QWebEnginePage::download | ** New method QWebEnginePage::download for starting downloads programmatically. | ||
* Qt Serial Bus | * Qt Serial Bus | ||
** Added local echo flag to QCanBusFrame to mark frames that are sent from the local system to the CAN bus. | ** Added local echo flag to QCanBusFrame to mark frames that are sent from the local system to the CAN bus. | ||
Line 76: | Line 106: | ||
*** Fixed crash when pressing the space after entering a smiley. | *** Fixed crash when pressing the space after entering a smiley. | ||
*** Fixed and optimized OpenWNN engine | *** 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 | * Emulator | ||
Line 81: | Line 114: | ||
** Plugin support | ** Plugin support | ||
** Device mockups are QML based | ** Device mockups are QML based | ||
* Device Creation / Boot2Qt | |||
** Device images updated to Yocto 2.3 (pyro) | |||
'''New Modules''' | '''New Modules''' | ||
* Qt Network | * Qt Network Auth - Provides support for OAuth1 & OAuth2 | ||
* Qt Speech - Supports text-to-speech | * Qt Speech - Supports text-to-speech | ||
'''Platform Changes''' | '''Platform Changes''' | ||
* [https://bugreports.qt.io/secure/Dashboard.jspa?selectPageId=15113 Jira] tracking for 5.10 changes: | |||
'''Technology Preview Modules''' | '''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 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''' | '''Deprecated Modules''' | ||
Latest revision as of 17:43, 7 December 2017
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 (optionally 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 QML
- Added support for enum declarations in QML.
- Added support for retranslation.
- 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 icons in buttons, delegates, and menus
- non-exclusive button groups
- nested menus, and cascading sub-menus
- wrapping spinboxes
- propagating palettes (only Default, Fusion & Imagine styles for now, others coming later)
- specifying the default font and palette in qtquickcontrols2.conf
- mnemonics in buttons, menus and menubars
- 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 61.
- 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 Auth - 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