Qt QML SplitView:此控件如何将其子项处理为内部项?
我查看了SplitView的源代码(%QT\u source\u PATH%\qml\QtQuick\Controls\SplitView.qml),发现它使用了3个项目来操作拆分器和项目:Qt QML SplitView:此控件如何将其子项处理为内部项?,qt,qml,qt-quick,qtquickcontrols,Qt,Qml,Qt Quick,Qtquickcontrols,我查看了SplitView的源代码(%QT\u source\u PATH%\qml\QtQuick\Controls\SplitView.qml),发现它使用了3个项目来操作拆分器和项目: Item { id: contents visible: false anchors.fill: parent } Item { id: splitterItems anchors.fill: parent } Item { id: splitterHandl
Item {
id: contents
visible: false
anchors.fill: parent
}
Item {
id: splitterItems
anchors.fill: parent
}
Item {
id: splitterHandles
anchors.fill: parent
}
根据代码,通过函数addItem_impl(item)将新项放入itemsplitterItems。函数addItem_impl(item)是从函数init()调用的,该函数通过idcontents的item传递每个子项。但我想知道根项中的所有子项是如何通过一个:
从:
对象定义可以有一个默认特性。如果在另一个对象的定义中声明了一个对象,而没有将其声明为特定属性的值,则默认属性是指定值的属性
[……]
您会注意到,可以将子对象添加到任何基于项的类型,而无需将其显式添加到children属性。这是因为项的默认属性是其数据属性,并且为项添加到此列表中的任何项都会自动添加到其子项列表中
默认属性可用于重新指定项的子项。请参见TabWidget示例,该示例使用默认属性自动将TabWidget的子项重新指定为内部ListView的子项。另请参见扩展QML
default property alias __contents: contents.data