diff options
Diffstat (limited to 'src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml')
-rw-r--r-- | src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml | 113 |
1 files changed, 93 insertions, 20 deletions
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml index 7298b4d3..2d05b74a 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml @@ -25,36 +25,109 @@ ** ****************************************************************************/ -//! [file] -import QtQuick 2.6 -import QtQuick.Controls 2.1 +import QtQuick 2.10 +import QtQuick.Controls 2.3 -Item { +ApplicationWindow { id: window - width: menu.contentItem.width - height: menu.contentItem.height + width: menu.width + height: menu.height visible: true + Component.onCompleted: menu.popup(menu.itemAt(1)) + // Indent it like this so that the indenting in the generated doc is normal. Menu { id: menu - contentItem.parent: window - background: Rectangle { - implicitWidth: 200 - implicitHeight: 200 - color: "#ffffff" - border.color: "#353637" + + Action { text: qsTr("Tool Bar"); checkable: true } + Action { text: qsTr("Side Bar"); checkable: true; checked: true } + Action { text: qsTr("Status Bar"); checkable: true; checked: true } + + MenuSeparator { + contentItem: Rectangle { + implicitWidth: 200 + implicitHeight: 1 + color: "#21be2b" + } } - MenuItem { - text: qsTr("New...") + Menu { + title: qsTr("Advanced") + // ... } - MenuItem { - text: qsTr("Open...") + + topPadding: 2 + bottomPadding: 2 + + delegate: MenuItem { + id: menuItem + implicitWidth: 200 + implicitHeight: 40 + + arrow: Canvas { + x: parent.width - width + implicitWidth: 40 + implicitHeight: 40 + visible: menuItem.subMenu + onPaint: { + var ctx = getContext("2d") + ctx.fillStyle = menuItem.highlighted ? "#ffffff" : "#21be2b" + ctx.moveTo(15, 15) + ctx.lineTo(width - 15, height / 2) + ctx.lineTo(15, height - 15) + ctx.closePath() + ctx.fill() + } + } + + indicator: Item { + implicitWidth: 40 + implicitHeight: 40 + Rectangle { + width: 26 + height: 26 + anchors.centerIn: parent + visible: menuItem.checkable + border.color: "#21be2b" + radius: 3 + Rectangle { + width: 14 + height: 14 + anchors.centerIn: parent + visible: menuItem.checked + color: "#21be2b" + radius: 2 + } + } + } + + contentItem: Text { + leftPadding: menuItem.indicator.width + rightPadding: menuItem.arrow.width + text: menuItem.text + font: menuItem.font + opacity: enabled ? 1.0 : 0.3 + color: menuItem.highlighted ? "#ffffff" : "#21be2b" + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + background: Rectangle { + implicitWidth: 200 + implicitHeight: 40 + opacity: enabled ? 1 : 0.3 + color: menuItem.highlighted ? "#21be2b" : "transparent" + } } - MenuItem { - text: qsTr("Save") + + background: Rectangle { + implicitWidth: 200 + implicitHeight: 40 + color: "#ffffff" + border.color: "#21be2b" + radius: 2 } } -} -//! [file] +} //! [eof] |