管理动态创建的元素(Managing Dynamically Created Elements)

在QML场景下,动态创建的对象可以像其它的对象一样处理。然而,也有一些缺陷需要处理。最重要的是创建环境的概念。

一个动态创建对象的创建环境是它被创建时的环境。这与它的父对象所在的环境不一定相同。当创建环境被销毁,会影响涉及绑定属性的对象。这意味着在对象的整个生命周期,在代码的一个地方实现动态对象创建是非常重要的。

动态创建的对象也可以动态销毁。当这样做时,有一个法则:永远不要尝试销毁一个你没有创建的对象。这也包括你已经创建的元素,但不要使用动态机制比如Component.createObject或者createQmlObject。

对象的销毁依赖于它的析构函数被调用。这个函数接收一个可选参数用于指定这个对象还可以存在多少毫秒后被销毁。这是非常有用的,例如让对象完成一个完整的过渡。

item = Qt.createQmlObject(...);
...
item.destroy();

注意

可以从一个对象内部实现销毁,例如创建一个可以自销毁的弹出窗口。