每个页面的单独菜单 - Qt和Android

时间:2015-08-14 09:51:15

标签: android qt

我正在使用ApplicationWindowStackView向用户提供多个页面。

import QtQuick 2.0
import QtQuick.Controls 1.0

ApplicationWindow
{
    menuBar: MenuBar {
        Menu {
            title: qsTr("Menu")
            MenuItem
            {
                text: qsTr("Enter page")
                onTriggered: stackView.push("qrc:/qml/SecondPage.qml")
            }
            MenuItem
            {
                text: qsTr("Base screen option")
                onTriggered: /**/
            }
        }
    }

    StackView
    {
        id: stackView
        anchors.fill: parent
        focus: true

        initialItem: FirstPage {}
    }
}

当将SecondPage推送到stackView时,仍会显示全局菜单。我尝试将StackView作为顶部元素并在其中推送ApplicationWindow,但StackView组件需要父级。

有没有办法实现特定于页面的菜单?

1 个答案:

答案 0 :(得分:0)

尝试并使用ApplicationWindow中的属性来指定要显示的文本。然后可以在堆栈视图的页面中设置这些属性。

TriShape::~TriShape

第一页:

ApplicationWindow {
    id: rootWindow
    width: 360
    height: 360
    visible: true

    property string option1Text: "Enter page"
    property string option2Text: "Base screen option"

    menuBar: MenuBar {
        Menu {
            title: qsTr("Menu")
            MenuItem
            {
                id: option1TextItem
                text: qsTr(option1Text)
                onTriggered: stackView.push("qrc:/qml/SecondPage.qml")
            }
            MenuItem
            {
                id: option2TextItem
                text: qsTr(option2Text)
                onTriggered: console.log("Triggered option 2")
            }
        }
    }

    StackView
    {
        id: stackView
        anchors.fill: parent
        focus: true

        initialItem: FirstPage {}
    }
}