|
|||||||
Выравнивание элементов относительно друг друга
Время создания: 10.01.2018 18:12
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - QML - Краткая памятка по QML
Запись: xintrea/mytetra_syncro/master/base/1515597153jr1fwony1u/text.html на raw.github.com
|
|||||||
|
|||||||
В 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, то есть выравнивание работает только относительно цепочки своих родителей. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|