Russian Qt Forum

Qt => Qt Quick => Тема начата: xintrea от Июнь 09, 2018, 09:30



Название: Не могу спозиционировать Rectangle на весь экран в QML
Отправлено: xintrea от Июнь 09, 2018, 09:30
Делаю я заготовку виджета. Нужно, чтобы когда он виден, при клике НЕ на его облась, чтобы виджет скрывался.

Я делаю так:

Код:
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). То есть относительно границ окна не спозиционируешься. Что за бред?


Название: Re: Не могу спозиционировать Rectangle на весь экран в QML
Отправлено: navrocky от Июнь 09, 2018, 19:16
Ну видимо нельзя так. В доке тоже это написано.


Название: Re: Не могу спозиционировать Rectangle на весь экран в QML
Отправлено: Igorkam от Июнь 18, 2018, 14:27
Мне кажется желтый Rectangle можно вытащить на один уровень с sdStorageListWidget.