Делаю я заготовку виджета. Нужно, чтобы когда он виден, при клике НЕ на его облась, чтобы виджет скрывался.
Я делаю так:
Window {
id: picker
width: 640
height: 480
Item {
id: sdStorageListWidget
visible: true
// Рабочая область посередине экрана, в ней будет список sdStorageListView
width: parent.width/2
height: parent.height/2
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
// Прямоугольник на весь экран, при нажатии на который виджет скрывается
// Он нужен, чтобы виджет скрывался всегда при клике не на область списка
Rectangle {
anchors.fill: picker.contentItem
color: "yellow"
MouseArea {
anchors.fill: parent
onClicked: {
sdStorageListWidget.visible=false;
}
}
}
// Зглушка для области списка
Rectangle {
id: sdStorageListView
anchors.fill: sdStorageListWidget
color: "lightblue"
MouseArea {
anchors.fill: parent
onClicked: {
console.log("Click on sdStorageListView");
}
}
}
}
}
На на строке определения желтого Rectangle появляется ошибка:
QML Rectangle: Cannot anchor to an item that isn't a parent or sibling.
Что-то я не вкурю, вроде бы всегда можно было позиционироваться относительно любых элементов, которые ближе к корню по иерархии вложения. А тут почему-то говорится что можно позиционироваться только относительно родителя или элементов того же уровня.
Другими словами, желтый прямоугольник можно позиционировать относительно parent, но невозможно относительно parent.parent (оно же picker.contentItem). То есть относительно границ окна не спозиционируешься. Что за бред?