到目前为止,我一直在 QML 中使用 StackView 从一个屏幕转到另一个屏幕。但我发现也可以创建不同的项目,这些项目将设置为可见或不可见,以使用新视图更新屏幕。例如,我可以有一个页眉、一个设置为可见的主要项目 (Item1) 和一个页脚。然后我可以将 Item1 设置为不可见,将 Item2 设置为可见。
我想知道每种解决方案的优点/缺点是什么?(StackView VS 视图可见/不可见)
到目前为止,我一直在 QML 中使用 StackView 从一个屏幕转到另一个屏幕。但我发现也可以创建不同的项目,这些项目将设置为可见或不可见,以使用新视图更新屏幕。例如,我可以有一个页眉、一个设置为可见的主要项目 (Item1) 和一个页脚。然后我可以将 Item1 设置为不可见,将 Item2 设置为可见。
我想知道每种解决方案的优点/缺点是什么?(StackView VS 视图可见/不可见)
正如@ddriver 所说,使用的好处StackView
是您不必自己做所有事情。我怀疑不使用 StackView(如果你有的话)所获得的性能优势将超过代码可读性的下降。如果我必须维护您的代码并看到您是自己做的,那么我要问的第一个问题是为什么您不只使用StackView
.
StackView
- 例如,它们默认存在,您无需编写一行代码即可获得漂亮的动画。currentIndex
属性进行比较main.qml
。给每个“页面”一个索引并visible: index == currentIndex
为每个项目设置。您必须确保在动画之后发生这种情况(如果有的话)。StackView
是 pushComponent
从中实例化和管理项目的 s StackView
。如果您有很多复杂的页面,如果您在它们不可见时不销毁它们,这可能会影响性能。例如,我可以有一个页眉、一个设置为可见的主要项目 (Item1) 和一个页脚。
Page
并且ApplicationWindow
也有这个功能。
如果您将其作为学习练习,请务必使用自定义实现。
如果您的目标是获得可靠(StackView
经过自动测试并向公众公开)的成品,请使用StackView
.