如何在基于条件创建QML组件时动态地定义父项?
示例:
// FirstFile.qml
SecondFile{
Rectangle {
id: bodyRect
}
}
// SecondFile.qml
Rectangle{
id: rectangleId
Flickable{
id: flickableId
}
}
在此示例中,bodyRect
的父级为rectangleId
。
如果条件为真,如何将flickableId
归为bodyRect
的父级?
答案 0 :(得分:1)
嗯,这实际上取决于你实际想要达到的目标,而现在的问题完全不清楚。
如果使用动态对象实例化,则只需将所需的父级传递给函数:
someComponent.createObject(condition ? parent1 : parent2)
此外,您可以根据条件更改对象的可视父级:
property bool cond: false
property Rectangle rect: Rectangle {
Rectangle {
parent: cond ? redrect : bluerect
anchors.centerIn: parent
width: 50
height: 50
color: "blue"
}
}
MouseArea {
anchors.fill: parent
onClicked: cond = !cond
}
Row {
Rectangle {
id: redrect
width: 200
height: 200
color: "red"
}
Rectangle {
id: bluerect
width: 200
height: 200
color: "green"
}
}
当cond
发生变化时,蓝色矩形将动态地重新定位到红色或绿色矩形。
请记住,除非对象碰巧代表在对象树中具有可见性的实际实例,否则您无法在不同文件中执行任何操作。