With the release of Qt 5.10, Qt Quick Controls 2.3 will be available.
New functionality in Qt Quick Controls 2.3:
- New styles
- Menu and actions (Actions)
- Palettes
New styles
Two new styles have been introduced: Fusion and Imagine . The Fusion style looks familiar to those using Qt Widgets. This is a QML based implementation with the same design.
The Imagine style is based on custom image objects, giving designers complete control over how the style looks. The style has a default set of image properties that are exported from Sketch.
Menus and actions
Menus and actions have taken a big step forward in their development. New QML types have been added called MenuBar , Action and ActionGroup , and Menu which support submenus. Nested menus are now possible, as on desktop platforms. Also added support for mnemonics and buttons.
The usage is identical to the previous generation of Qt Quick Controls:
import QtQuick 2.10 import QtQuick.Controls 2.3 ApplicationWindow { id: window width: 500 height: 400 visible: true menuBar: MenuBar { Menu { title: qsTr("&File") Action { text: qsTr("&New...") } Action { text: qsTr("&Open...") } Action { text: qsTr("&Save") } Action { text: qsTr("Save &As...") } MenuSeparator { } Action { text: qsTr("&Quit") } } Menu { title: qsTr("&Edit") Action { text: qsTr("Cu&t") } Action { text: qsTr("&Copy") } Action { text: qsTr("&Paste") } MenuSeparator { } Menu { title: qsTr("&Find/Replace") Action { text: qsTr("Find &Next") } Action { text: qsTr("Find &Previous") } Action { text: qsTr("&Replace...") } } } Menu { title: qsTr("&Help") Action { text: qsTr("&About") } } } }
These are important steps to bring the menu functionality of Qt Quick Controls 2 to that of traditional menus on desktop platforms. This allows us to start looking at the next steps, integrating native platform menus as a backend for Qt Quick Controls 2 menus.
Palettes
Added support for custom palettes, which are currently supported by the Default, Fusion, Imagine themes. Other themes will get palette support later. The screenshot below shows the palette for the Default theme.
Questions and answers:
What about the TableView?
- We've made great strides with the new TableView, which is based on the same Qt Quick item view framework that ListView and GridView are based on. The current implementation is already capable of managing the 2D set of visible elements for the current viewport. Performance is on par with ListView and GridView. A large number of columns does not kill performance, as in the ListView-based TableView in Qt Quick Controls 1. Follow the blog post on this issue.
When will the famous "Object destroyed during incubation" issue be fixed?
- We believe that we have the necessary ingredients for a permanent solution to this problem. A patch has been prepared for the QML engine that allows inline delegates to be delayed in order to: a) replace them with custom delegates at construction time, which will not cause problems for asynchronous incubation and b) the performance (in terms of creation time) of a custom control is independent of built-in delegates. As soon as the necessary patch to the QML engine is ready, you can start using it in Qt Quick Controls 2.
Интересные нововведения связанных с меню и его представления.