如何将 StackView 展开到 QML 中的倒数第二个项目

How to unwind StackView till the second last item in QML

我想放松到 StackView 中的倒数第二个项目。 documentation 声明它应该像 stackView.pop({item: itemName}) 一样简单,但这就像我在做 stackView.pop() 一样。直到特定项目的正确展开方式是什么?

我的Qt版本是5.14.2。

您链接的文档是针对 QQC1 的 StackView 的文档。对于 Qt Quick Controls 2 StackView,弹出函数有点不同:https://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#pop-method

您可以这样称呼它:stackView.pop(itemName)。请注意,itemName 需要是压入堆栈的项目的实例。如果您在 StackView 上推送组件,尝试使用对组件的引用进行弹出操作将不起作用。

// this works :
stackView.push(itemInstance);
...
stackView.pop(itemInstance);

// this doesn't work:
stackView.push(component);
...
stackView.pop(component);

// you could store the instance of the item created from the component like so:
createdItem = stackView.push(component);
...
stackView.pop(createdItem);

// or use StackView.find
const itemToPop = stackView.find(item => return item.objectName === "pop me");
stackView.pop(itemToPop)

// or StackView.get to get an item from its position in the stack:
const itemToPop = stackView.get(1);
stackView.pop(itemToPop);