动态添加到 qml tabbar 和 stacklayout

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