我注意到继承的奇怪行为Flickable
。
我有两个文件,Comp.qml
和main.qml
. 这个想法是Comp
对象的任何孩子都将是Flickable
under的孩子Comp
。我已经默认使用内容
default property alias contents: flickable.children
但结果却很奇怪。
Comp.qml
Rectangle {
id: comp;
anchors.fill: parent
default property alias contents: flickable.children; // alias a default property
property int contentHeight: comp.height;
Flickable {
id: flickable;
anchors.fill: parent;
contentHeight: comp.contentHeight;
}
}
main.qml
Rectangle {
id: root;
width: 400;
height: 400;
Comp {
contentHeight: 800;
Rectangle { // <-- this rectangle should be a child of Flickable
width: 800;
height: 800;
border.color: "black";
border.width: 5;
Component.onCompleted: console.debug(parent)
}
}
}
轻弹不起作用。
如果我尝试将它们全部放在一个文件中,它会按预期工作:
main.qml
Rectangle {
id: root;
width: 400;
height: 400;
Rectangle {
id: comp;
anchors.fill: parent
Flickable {
id: flickable;
anchors.fill: parent;
contentHeight: 800;
Rectangle { // <-- the child component
width: 800;
height: 800;
border.color: "black";
border.width: 5;
}
}
}
}
我错过了什么吗?如何将外部组件添加到Flickable
?