Russian Qt Forum
Март 29, 2024, 01:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не могу спозиционировать Rectangle на весь экран в QML  (Прочитано 4667 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Июнь 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). То есть относительно границ окна не спозиционируешься. Что за бред?
« Последнее редактирование: Июнь 09, 2018, 09:37 от xintrea » Записан

Собираю информацию по крупицам
http://webhamster.ru
navrocky
Moderator
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #1 : Июнь 09, 2018, 19:16 »

Ну видимо нельзя так. В доке тоже это написано.
Записан

Гугль в помощь
Igorkam
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« Ответ #2 : Июнь 18, 2018, 14:27 »

Мне кажется желтый Rectangle можно вытащить на один уровень с sdStorageListWidget.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.