Я заметил странное поведение, которое мешает мне делать то, что я хочу.Flickable + содержимое псевдонима свойства
Если у меня есть
Comp.qml:
Rectangle {
id: comp;
anchors.fill: parent
default property alias contents: flickable.children;
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 {
width: 800;
height: 800;
border.color: "black";
border.width: 5;
Component.onCompleted: console.debug(parent)
}
}
}
flickable не работает.
Если я пытаюсь поставить все это в одном файле, он работает, как ожидалось:
main.qml:
Rectangle {
id: root;
width: 400;
height: 400;
Rectangle {
id: comp;
anchors.fill: parent
Flickable {
id: flickable;
anchors.fill: parent;
contentHeight: 800;
Rectangle {
width: 800;
height: 800;
border.color: "black";
border.width: 5;
}
}
}
}
Я-то отсутствует?
Как сделать внешний компонент, содержимое которого доступно?
Это выглядит, чем QML связывают детей пункта к flickable до его инициализации. если вы выполните 'onContentsChanged: {flickable.contentWidth}' на 'comp', вы получите * -1 *. Но этот «Прямоугольник» имеет ширину 800 пикселей. Так может быть, это проблема с проблемой размера. – folibis