New Features in Qt 5.12
New Features (within existing modules)
- Qt Network
- Added Datagram Transport Layer Security over UDP support.
- Added renegotiation to Security Transport back-end.
- Added ALPN support and HTTP/2 protocol negotiation to Security Transport back-end.
- Qt Quick Controls 2
- Added inputMode property to dial, which adds two new ways of interacting with it: horizontally and vertically. These new input modes use a relative input system, which means that, unlike the old absolute input system, changes to the dial's position are "added" to its value. This results in a dial that is less "jumpy", making it safe for operations that could be harmful if done incorrectly, like adjusting audio levels.
- Added topInset, bottomInset, leftInset, and rightInset properties to control the geometry of the background similarly to how paddings control the geometry of the contentItem.
- Added implicit*Width and implicit*Height properties (e.g. implicitHeaderWidth, implicitContentWidth, etc.) to simplify complex implicit size bindings.
- SwipeView, DialogButtonBox: added contentWidth and contentHeight properties.
- RangeSlider: added valueAt() function, which allows seeing up-to-date values in tooltips for each handle when live is set to false (copied from Slider).
- RangeSlider: added first.moved() and second.moved() signals, similar to Slider's moved() signal.
- Control: unless explicitly specified, baselineOffset is now automatically updated based on the top padding of the control and the baselineOffset of the contentItem. Styles no longer need to specify the baselineOffset in QML.
- Popup: added anchors.centerIn to allow a convenient way of centering a popup.
- QQuickStyle: added stylePathList() and addStylePath() methods for managing the list of directories where Qt Quick Controls 2 searches for available styles.
- Slider, RangeSlider: added touchDragThreshold property for configuring the threshold to initiate the touch 'drag' of the handle of the slider. The mouse 'drag' won't be affected by the property.
- TextArea, TextField: added placeholderTextColor property for user convenience to customize the placeholderText color to fit the backgrounds.
- Material: added a Dense variant of the Material style for use on desktop platforms. Some controls are slightly smaller in height and use smaller font sizes. The variant can be enabled by setting QT_QUICK_CONTROLS_MATERIAL_VARIANT to Dense or setting Variant=Dense in the qtquickcontrols.conf file.
- DialogButtonBox: added buttonLayout property that can be used to arrange the buttons.
- Tumbler: added positionViewAtIndex() function that calls the respective PathView/ListView function, depending on the value of wrap. This allows changing currentIndex without animations.
- Added horizontalPadding and verticalPadding properties as a convenient way to set both left and right, or top and bottom paddings in one go.
- Added non-attached show() and hide() methods to give the same level of convenience for showing non-attached popups with certain parameters.
- Qt Labs Platform
- Menu, MenuItem, SystemTrayIcon: deprecated iconName and iconSource in favor of icon.name and icon.source grouped properties.
- Menu, MenuItem, SystemTrayIcon: added icon.mask grouped property.
- Qt Virtual Keyboard
- Introduced an extension interface for the virtual keyboard. All the current input methods and some special keyboard layouts (e.g. Hunspell, OpenWnn, etc.) have been moved to extensions. The extension interface allows third parties to create a new input method without having to modify or rebuild the virtual keyboard. In addition, this change makes it possible to add features and languages independently by copying the desired extension to the system.
- Introduced a virtualkeyboard module, which can be linked against an extension plugin. This module provides the C++ API necessary for creating an input method.
- Added build time option to exclude all styles from the plugin.
- Added Vietnamese handwriting recognition (T9 Write).
- Added Vietnamese keyboard layout.
- Added latin extra layout for Russian.
- The pinyin and tcime dictionaries are now bundled in the plugin by default.
- No new modules added
- Now uses ICU, when available, in preference to Microsoft's native APIs
Technology Preview Modules
- Qt WebGL Streaming Plugin (TP2) - Stream applications to browsers over the network
The following modules are part of Qt 5.12 release, but deprecated and considered for removal in subsequent releases of Qt:
- Qt Script
- Qt Quick Controls 1