mlv*_*ljr 4 qt parent parent-child qml
任何人都可以帮助我澄清QML Repeater docs首先说的意思
"由Repeater实例化的项目按顺序插入,作为Repeater父项的子项.",
然后
"注意:Repeater项目拥有它实例化的所有项目.删除或动态销毁由Repeater创建的项目会导致不可预测的行为."?
QML中的可视对象的子/父关系和所有权是否相同?
对象父(所有权)和可视父级在QtQuick中不同.对象父级在创建时设置,永远不会更改.可以通过"父"属性随时更改可视父级.
Repeater创建委托并将所有权设置为自身,并将可视父级设置为其父级.换句话说,Repeater拥有代理,但将视觉呈现留给其父代(在大多数情况下,定位器).
Qt 5文档正在该领域进行改进.这是一个片段(Qt 5 doc快照最近没有更新 - 这是来自源代码):
在使用Qt Quick的QML应用程序中有两种不同的父级.第一种是所有权父(也称为QObject父),它确定对象的生命周期语义.第二种是可视父级,它确定在画布上绘制项目的位置,以及某些属性(例如,不透明度适用于可视子级).
在几乎所有情况下,视觉父母与所有者父母相同.有关该主题的更深入信息,请参阅有关Visual Parent的文档.
不幸的是,"Visual Parent"主题尚未编写.