在实际的QML的布局中,经常会出现多个同级元素不属于Item的集成对象,导致不能够使用Repeater进行布局,但是又需要根据兄弟元素的位置确定当前元素的位置,当前元素因为不能够包含在兄弟元素内部所以难以获取兄弟元素的对象,比较方便的就是给兄弟元素配置一个id的属性,但是这个属性必须全局唯一,导致多个重复元素布局的时候代码重复性修改,因此如何通过统一的代码获取元素的兄弟就有必要了。
其实获取的方法比较简单:parent.children[0] 就可以了
VTKRenderItem {
objectName: "MultiSlice0"
renderWindow: vtkwindow
focus: true
Layout.row: 0
Layout.column: 0
Layout.fillWidth: true
Layout.fillHeight: true
Layout.minimumWidth: 100
Layout.preferredWidth: 200
Rectangle {
id:rect_0
border.color: outline_color
color: "transparent"
x: 10
y: 10
width:parent.width -20
height:parent.height-20
}
ScaleBar3D {
x: parent.children[0].width + parent.children[0].x
y: parent.children[0].y
width: 20
height: parent.children[0].height
}
}
如上面的代码, 我在对多个vtk的Render进行QML的布局的时候, 每个布局中需要有自己的标尺,在对标尺进行基于render所在的矩形边框的几何位置的时候,从parent获取就很方便了。
代码已经过验证,可以正常操作~