我正在尝试编写一个堆栈布局模板,以便在我系统的每个页面中重复使用。我可以知道如何在我的 page1 qml 中编辑或添加索引内容吗?将Panel.qml
在我的其他页面上使用不同的选项卡按钮名称。
page1.qml 如下:
Panel {
id: root
}
面板.qml
RoundedPanel { id:根宽度:1250 高度:960 颜色:“透明”
default property alias content: stackLayout.data
property alias tabNames: navBar.buttonNames
NavigationBar {
id: navBar
parent: root
}
StackLayout {
id: stackLayout
height: parent.height
width: root.width - navBar.width
anchors.left: navBar.right
anchors.verticalCenter: parent.verticalCenter
currentIndex: navBar.currentIndex
}
}
导航栏.qml
项目{ id:根高度:parent.height 宽度:150 anchors.left:parent.left anchors.verticalCenter:parent.verticalCenter
property var buttonNames: []
property int currentIndex: 0
RoundedPanel { id:tabBar 宽度:parent.width + 半径高度:parent.height anchors.left:parent.left
Column {
id: buttonColumn
topPadding: 80
spacing: 1
property alias indexTest: root.currentIndex
Repeater {
id: buttonRepeater
model: root.buttonNames
WidgetNavigationButton {
text: buttonRepeater.model[index]
checked: root.currentIndex == index
onCheckedChanged: if (checked) { root.setCurrentIndex(index) }
}
}
}
}
导航按钮.qml
TabButton { id:控件高度:75 宽度:150
background: Rectangle {
width: control.width
height: control.height
color: "transparent"
border.width: Style.accentWidth
border.color: Colors.accent
}
opacity: enabled ? (checked ? 1.0 : 0.25) : Style.disabledOpacity
contentItem: ButtonText {
id: buttonText
width: parent.width
text: control.text
font.weight: Font.Bold
font.pointSize: 18
}
}