Qt 5.9 introduces many new features and improvements as well as bugfixes over the 5.8.x series. For more details, refer to the online documentation included in this distribution. The documentation is also available online: http://doc.qt.io/qt-5/index.html The Qt version 5.9 series is binary compatible with the 5.8.x series. Applications compiled for 5.8 will continue to run with 5.9. Some of the changes listed in this file include issue tracking numbers corresponding to tasks in the Qt Bug Tracker: https://bugreports.qt.io/ Each of these identifiers can be entered in the bug tracker to obtain more information about a particular change. **************************************************************************** * Important Behavior Changes * **************************************************************************** - Added multi-touch support for buttons and sliders. It is now possible to touch-interact with multiple sliders and buttons at the same time. - By popular demand, Slider, RangeSlider, and Dial have been changed to report live value updates by default. This can be disabled by setting the "live" property to false. - [QTBUG-59920] Sliders and Dials now react immediately when using a mouse. Now the initial drag threshold applies only on touch, to avoid conflicting with flickables. - [QTBUG-58667] ScrollBar now reacts immediately when using a mouse. - [QTBUG-59629] Set explicit cursors on all interactive controls. **************************************************************************** * Controls * **************************************************************************** - AbstractButton: * Added support for multi-touch. * [QTBUG-57203] Added a toggled() signal that is emitted whenever a checkable button is interactively toggled by the user by using either touch, mouse, or keys. - ApplicationWindow: * [QTBUG-58932] The "data" property has been renamed to contentData, as it was documented. Notice that a "data" property still exists in QML Window, but is no longer overshadowed in ApplicationWindow. - Control: * [QTBUG-50992] Resolved the "Object destroyed during incubation" issue that occurred randomly when customizing built-in delegates. - ComboBox: * [QTBUG-53876] Added "editable" property. * Added "down" property. - DelayButton: * Added DelayButton that incorporates a delay before the button becomes activated, to prevent accidental triggers. - Dial: * Added a "live" property that determines whether the dial provides live updates for the "value" property while the handle is dragged. * Added support for wheel handling when wheelEnabled is set to true. * [QTBUG-57203] Added a moved() signal that is emitted whenever the dial is interactively moved by the user by using either touch, mouse, or keys. * Fixed handling of inverted wheel events (natural touchpad scrolling direction on macOS). - Drawer: * [QTBUG-53169] Added "interactive" property that specifies whether the drawer reacts to swipes. This can be used to make drawer a non-closable persistent side-bar. - Menu: * Fixed populating Menus with a Repeater. - Popup: * Allowed passing a Window as a parent when creating dynamic Popup instances using eg. Component.createObject(). Previously, Popup assumed the parent to be an Item, and would complain "cannot find any window to open popup in" if a Window was passed. * [QTBUG-58196] Allowed dynamic window changes after construction. * Fixed the CloseOnRelease close policy for non-modal popups. - RangeSlider: * Added a "live" property that determines whether the range slider provides live updates for the first.value and second.value properties while the respective handle is dragged. - ScrollBar: * [QTBUG-56569] Added snapMode property for incremental or discrete scrolling. * Added an "interactive "property. A non-interactive ScrollBar is visually and behaviorally similar to ScrollIndicator. This property is useful for switching between typical mouse- and touch-orientated UIs with interactive and non- interactive scroll bars, respectively. * Added a "policy" property, which holds whether the scroll bar is shown always/never/as needed (default). - ScrollView: * Added ScrollView. On touch, ScrollView enables flicking and makes the scroll bars non-interactive. When interacted with a mouse device, flicking is disabled and the scroll bars are interactive. - Slider: * Added support for multi-touch. * Added a "live" property that determines whether the slider provides live updates for the "value" property while the handle is dragged. * [QTBUG-57203] Added a moved() signal that is emitted whenever the slider is interactively moved by the user by using either touch, mouse, wheel, or keys. * Fixed handling of inverted wheel events (natural touchpad scrolling direction on macOS). - SpinBox: * [QTBUG-56837] Added inputMethodHints and inputMethodComposing properties for controlling the input method when using editable spin boxes. * [QTBUG-57203] Added a valueModified() signal that is emitted whenever the value of a spin box has been interactively modified by the user by using either touch, mouse, wheel, or keys. * [QTBUG-60356] Forwarded focus to the internal editor of an editable spin box. - StackView: * [QTBUG-56801] Added attached "StackView.visible" property that can be used to control whether items below the top- most item are kept visible. * [QTBUG-57266] Prevented pushing duplicate items. * [QTBUG-59034] Fixed pop/replace exit transition leak, sometimes leading to random crashes since a transition could have been left running in the background at destruction time. * [QTBUG-59098] Prevented StackView filtering mouse ungrab events to avoid MouseAreas being stuck in the pressed state. * [QTBUG-59634] Improved component creation errors by using the standard QML warning system that gives a context/location for the error. - SwipeDelegate: * [QTBUG-57192] Added "swipe.enabled" property to allow disabling of swiping. * Added swipe.open(side) method that can be used to programmatically open the side item on the specified side, which can be either SwipeDelegate.Left or SwipeDelegate.Right. * Added swipe.opened() and swipe.closed() signals, which are emitted when the delegate has been opened or closed by swipe, and the respective transition has finished. * Added a swipe.transition property that holds the transition that is applied when a swipe is released, or swipe.open() or swipe.close() is called. - SwipeView: * [QTBUG-56031] Added "orientation" property. - TabBar: * [QTBUG-57858] Added contentWidth and contentHeight properties that are automatically calculated based on the total size of the tab items, but can be manually overridden if desired. This fixes an issue that TabBar was not able to reliably calculate an implicit size, and could in certain scenarios enter an infinite loop due to a circular dependency between the items' sizes and the tabbar's size. - TextArea: * [QTBUG-55999] Fixed the horizontal alignment of the placeholder text in right-to-left UIs. * TextArea has been made to work inside ScrollView, providing necessary scroll bars out of the box. - TextField: * [QTBUG-55999] Fixed the horizontal alignment of the placeholder text in right-to-left UIs. - Tumbler: * Added a "moving" property that describes whether the tumbler is currently moving, due to the user either dragging or flicking the tumbler. **************************************************************************** * Styles * **************************************************************************** - Added support for a QT_QUICK_CONTROLS_STYLE_PATH environment variable, which can be used to specify lookup paths for Qt Quick Controls 2 styles. This allows device manufacturers and Linux distributions to specify a system-wide style installation folder that may be located outside the Qt installation tree. - Added support for a QT_QUICK_CONTROLS_STYLE_CONF environment variable, which can be used to override the default location of the Qt Quick 2 Controls configuration file (:/qtquickcontrols2.conf). - QQuickStyle: * Added availableStyles() method that returns the list of available built-in styles. Default -------- - Visualized RangeSliders's range. Material -------- - [QTBUG-58797] Fixed cursor visibility for read-only editors. **************************************************************************** * Platform * **************************************************************************** - Menu: * Fixed sub-menu handling when using the Qt Widgets fallbacks on platforms that do not support native menus (Windows, for example).