如何将 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);
我想放松到 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);