Russian Qt Forum

Qt => Qt Quick => Тема начата: xintrea от Январь 10, 2018, 10:47



Название: QML: Почему нельзя обратиться к типу Window по id?
Отправлено: xintrea от Январь 10, 2018, 10:47
Есть у меня вот такой пример с прямоугольником:

Код:
    Rectangle {
         id: page
         width: 640
         height: 480
         color: "lightgray"

         Text {
             text: "Hello world!"
             anchors.horizontalCenter: page.horizontalCenter
         }
     }

Здесь видно, что внутри Text происходит обращение к вышестоящему Rectangle по id page. И происходит центрирование текста относительно прямоугольника. Все работает правильно.

Теперь делаем то же самое с Window:

Код:
Window {
    id: content
    visible: true
    width: 640
    height: 480

    Text {
        text: "Hello world!"
        anchors.horizontalCenter: content.horizontalCenter
    }
}

И видим, что обращение по id content не работает. Центрирования не происходит.

А если вместо id написать parent, то центрирование работает:

Код:
Window {
    id: content
    visible: true
    width: 640
    height: 480

    Text {
        text: "Hello world!"
        anchors.horizontalCenter: parent.horizontalCenter
    }
}

То есть, по каким-то причинам для типа Window невозможно обращение через id.

Это что за ограничение такое?


Название: Re: QML: Почему нельзя обратиться к типу Window по id?
Отправлено: xintrea от Январь 10, 2018, 19:21
В общем, разобрался:

Особенности иерархии при использовании типов Window и ApplicationWindow (https://webhamster.ru/mytetrashare/index/mtb0/1515597043sj7j0mw2n7)