Mos*_*osi 5 qt qml qt5 qtquick2
我正在尝试在 qml 中创建选项卡式页面。我使用与 StackLayout 关联的 TabBar:
TabBar {
id: bar
width: parent.width
TabButton {
text: qsTr("Home")
}
TabButton {
text: qsTr("Discover")
}
TabButton {
text: qsTr("Activity")
}
}
StackLayout {
width: parent.width
currentIndex: bar.currentIndex
Item {
id: homeTab
}
Item {
id: discoverTab
}
Item {
id: activityTab
}
}
Run Code Online (Sandbox Code Playgroud)
通过此代码可以轻松地动态添加新的 tabButton:
var tab = tabButton.createObject(TTabButton, {text: tabName});
bar.addItem(tab);
Run Code Online (Sandbox Code Playgroud)
其中 TTabButton 是一个包含 TabButton 项的单独文件。但我找不到任何方法将新页面添加到 StackLayout。看来它应该是静态的。所以我的问题是如何在 qml 中进行动态选项卡分页?
小智 5
您可以添加到 StackLayout 的子级:
var item = stackItem.createObject(null, {id: "tabName"})
layout.children.push(item)
Run Code Online (Sandbox Code Playgroud)
stackItem您添加到 StackLayout 的那些项目的 Component 在哪里layout。