多视图 QML 桌面应用程序的最佳实践?

Best practice for multi view QML desktop app?

我正在处理一个需要为其创建 GUI 的 C++ 项目。我有一些使用 Qt Widgets 的经验,但出于几个原因我们决定在这个项目中使用 QML。 GUI 非常简单,没什么特别的。我们正在尝试拥有多个视图,导航将通过位于 header 中的按钮完成。

每个按钮都会在前面带来一个视图。请参阅随附的屏幕截图以获得更好的主意。

值得一提的是,在视图导航期间,不应破坏实际视图。应该保留状态。基本上我正在尝试重新创建 Tab 控件,但按钮位置除外。

现在的问题是,我以前没有使用过QML,我想请教。哪种控件更适​​合这种情况?我检查了 SwipeView、TabControl 等,但很容易混淆。如果您能推荐我应该研究哪个领域,我将不胜感激。

谢谢

P.S。最好将每个视图的 qml 放在一个单独的 qml 文件中,这样我们就不会得到一个巨大的 qml 文件。

好吧,它可以像将四个视图放在彼此之上并隐藏除活动视图之外的所有视图一样简单。然后有一个按钮组来确定哪个视图处于活动状态:

ApplicationWindow {
  id: window
  visible: true
  width: 640
  height: 480
  ButtonGroup { buttons: buts.children }
  Column {
    Row {
      id: buts
      Button {
        id: v1
        checkable: true
        checked: true
        text: "red view"
      }
      Button {
        id: v2
        checkable: true
        text: "green view"
      }
      Button {
        id: v3
        checkable: true
        text: "blue view"
      }
    }
    Item {
      width: 300
      height: 300
      Rectangle {
        anchors.fill: parent
        color: "red"
        visible: v1.checked
      }
      Rectangle {
        anchors.fill: parent
        color: "green"
        visible: v2.checked
      }
      Rectangle {
        anchors.fill: parent
        color: "blue"
        visible: v3.checked
      }
    }
  }
}

您可以轻松地在单独的 QML 文件中声明您自己的东西,并用它替换矩形。