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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не могу спозиционировать Rectangle на весь экран в QML  (Прочитано 5345 раз)
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.026 секунд. Запросов: 20.