我正在使用ApplicationWindow
和StackView
向用户提供多个页面。
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
组件需要父级。
有没有办法实现特定于页面的菜单?
答案 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 {}
}
}