QtQuick.Controls 2 StackView 和 destroyOnPop
QtQuick.Controls 2 StackView and destroyOnPop
我的应用程序使用 StackView 并将大量动态创建的对象推送到此 StackView 中,当它们从 StackView 中弹出时,我需要一些方法来销毁此对象。如果我使用 Controls 1 Stackview,我可以使用 destroyOnPop 属性 推送对象(就像 中显示的那样):
tablesStack.push({item: view, destroyOnPop: true})
但不适用于 Controls 2 StackView。这个问题的正确解决方案是什么?
我只知道一种方法:弹出时延迟调用 object.destroy(),但这种方法看起来很笨拙。如果它很重要,我可以将任何代码添加到动态生成的对象中
控件 2 StackView
简化了所有权语义。 StackView
获得它动态实例化的任何项目的所有权。如果您已经创建了实例,那么您就可以控制该实例。换句话说,如果您希望 StackView
销毁,请推送 Component
或 URL,然后让 StackView
创建实例。
如果你需要访问创建的实例,你可以简单地处理return值:
var view = stackView.push(component, {"foo": 1, "bar": 2})
view.doSomething()
我的应用程序使用 StackView 并将大量动态创建的对象推送到此 StackView 中,当它们从 StackView 中弹出时,我需要一些方法来销毁此对象。如果我使用 Controls 1 Stackview,我可以使用 destroyOnPop 属性 推送对象(就像
tablesStack.push({item: view, destroyOnPop: true})
但不适用于 Controls 2 StackView。这个问题的正确解决方案是什么?
我只知道一种方法:弹出时延迟调用 object.destroy(),但这种方法看起来很笨拙。如果它很重要,我可以将任何代码添加到动态生成的对象中
控件 2 StackView
简化了所有权语义。 StackView
获得它动态实例化的任何项目的所有权。如果您已经创建了实例,那么您就可以控制该实例。换句话说,如果您希望 StackView
销毁,请推送 Component
或 URL,然后让 StackView
创建实例。
如果你需要访问创建的实例,你可以简单地处理return值:
var view = stackView.push(component, {"foo": 1, "bar": 2})
view.doSomething()