我有一个 QML StackView
,在应用程序中会将许多组件推送到其中。我想要做的是,在应用程序的某个时候重置 StackView
到其初始状态。 StackView 的定义如下:
StackView {
id: soemID
initialItem: myItem
}
随着应用程序运行,有许多东西在被压入和弹出。我想找到一种方便的方法来将这个过程重置为只保留初始项目,但我找不到这样的方法。难道唯一的方法是连续逐个弹出项目,直到只剩下一个项目吗?
soemID.pop(null)
应该可以解决问题。 来自StackView文档:
pop(Item item = undefined)
如果item为空,所有项直到(但不包括)第一项将被弹出。如果未指定,则仅弹出当前项....
正如评论中所建议的那样,清空堆栈然后推入初始项就解决了问题。
soemID.clear()
soemID.push(soemID.initialItem)
stack.clear()
之后,任何 stack.push()
都会失败并出现未定义的堆栈错误... 因此,解决方案实际上是调用 stack.pop(null)
。 - fralbo