通过简单导航创建多个单独的可见网页的简单方法是同时使用SwipeView
和TabBar
:
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
Page {
id: page
header: TabBar {
id: tabBar
currentIndex: swipeView.currentIndex
TabButton {
text: qsTr("Page1")
}
TabButton {
text: qsTr("Page2")
}
}
SwipeView {
id: swipeView
width: page.width
height: page.height
currentIndex: tabBar.currentIndex
Page {
width: swipeView.width
height: swipeView.height
title: qsTr("Page1")
Pane {
anchors.fill: parent
}
}
Page {
width: swipeView.width
height: swipeView.height
title: qsTr("Page2")
Pane {
anchors.fill: parent
}
}
}
}
title
组件中有Page
个属性。它在上面的例子中是不可见的,但它是在我脑海中存储标签标题的适当位置。我可以使用Repeater
页面的某些属性(即TabBar
)生成SwipeView
内容.title
来填充TabButton.text
吗?
我查看了文档,但找不到SwipeView
的属性,这允许我通过索引(例如pages[index]
)访问其页面。
答案 0 :(得分:2)
Qt Quick 很棒!我很快就找到了答案:
Repeater {
model: swipeView.count
TabButton {
text: swipeView.contentChildren[index].title
}
}
甚至更简单
Repeater {
model: swipeView.contentChildren
TabButton {
text: modelData.title
}
}