MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Выравнивание элементов относительно друг друга
10.01.2018
18:12
Раздел: Компьютер - Программирование - Язык C++ - Библиотека Qt - QML - Краткая памятка по QML

В QML есть такая особенность: выравнивать элементы можно только относительно элементов того же уровня, либо относительно вышестоящих элементов.


Казалось бы, это простое и понятное правило. Но здесь есть непонятки. Что считать вышестоящими элементами? Элементы только той ветки иерархии, в которой находится объект, или любые элементы, уровень вложенности которых меньше, чем выравниваемый элемент? С этим надо разобраться.


В следующем коде будет работать выравнивание элемента text1 относительно rectangle1. Но выравнивание text1 относительно text2 работать не будет по причине того, что text2 находится в другой "ветке" иерархии:


Rectangle {

id: rectangle1


Text {

id: text1

text: "Value text 1"

anchors.left: rectangle1.horizontalCenter

}

}


Text {

id: text2

text: "Value text 2"

anchors.left: parent.left

anchors.bottom: text1.bottom

}


И тут не имеет значения, что text1 расположен глубже по иерархии чем text2 (и мог бы выравниваться относительно text2, согласно правилу). Да, он расположен глубже, но в другой "ветке". Поэтому выравнивания text1 относительно text2 не будет производиться.


Другими словами, тот факт, что text2 стоит вровень с rectangle1, все равно не позволяет text1 выравниваться относительно text2. Элемент text1 может быть выровнен только относительно rectangle1, то есть выравнивание работает только относительно цепочки своих родителей.



Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования