О размере родительского элемента в QML
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 16.06.21 22:55
Оценка:
Всем привет.
У меня есть QML приложение в котором как всегда надо выстраивать элементы в разном порядке.
Допустим, я хочу сделать две колонки кнопок, сами кнопки буду группировать через ColumnLayout, а потом эти колонки поставить слева направо с неким марджином (грид тут не работает, в реале есть ещё нюансы). Как обычно делаю:
Item {
 id: id1
 ColumnLayout{
 ....buttons... н-р через репитор
 }
}
Item {
 id: id2
 anchors.left: id1.right
 ColumnLayout{
 ....buttons...
 }
}

Так вот в чём дело, элементы id1 и id2 не будут иметь размер и позиционирование через анхор работать тоже не будет что довольно грустно.
Отсюда вопрос, как заставить Item увеличить свои реальные размеры до ширины и высоты кнопок в лейауте включая спейсингом лейаута? Общий вопрос, как вообще заставить Item и родительские элементы раздуваться "физически" до размеров наполнения? Частенько приходится наблюдать баги вываливание дочерних элементов из родительских т.к. размеров у последних просто нет. Да, можно ставить руками ширину и высоту, но это всё не то.
Sic luceat lux!
Re: О размере родительского элемента в QML
От: Igore Россия  
Дата: 17.06.21 07:27
Оценка: 4 (1)
Здравствуйте, Kernan, Вы писали:

K>Всем привет.

Привет

K>Так вот в чём дело, элементы id1 и id2 не будут иметь размер и позиционирование через анхор работать тоже не будет что довольно грустно.

K>Отсюда вопрос, как заставить Item увеличить свои реальные размеры до ширины и высоты кнопок в лейауте включая спейсингом лейаута? Общий вопрос, как вообще заставить Item и родительские элементы раздуваться "физически" до размеров наполнения? Частенько приходится наблюдать баги вываливание дочерних элементов из родительских т.к. размеров у последних просто нет. Да, можно ставить руками ширину и высоту, но это всё не то.
Ну как как, взять и написать что родитель зависит от размеров детей, только учти тут либо сверху вниз размеры будут либо снизу вверх, я обычно в таких случаях делая Item->Rectangle и смотрю чтобы занималась правильная область, потом обратно на Item возвращаюсь

Item {
 id: id1

 width: firstChild.width
 height: firstChild.height

 //Можно и так сделать
 //height: childrenRect.height
 //width: childrenRect.width

 ColumnLayout{
   id: firstChild
 ....buttons... н-р через репитор
 }
}

Item {
 id: id2
 anchors.left: id1.right
 anchors.top: id1.top
 width: secondChild.width
 height: secondChild.height

 ColumnLayout{
  id: secondChild
 ....buttons...
 }
Re[2]: О размере родительского элемента в QML
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 17.06.21 10:29
Оценка:
Здравствуйте, Igore, Вы писали:

I>Ну как как, взять и написать что родитель зависит от размеров детей, только учти тут либо сверху вниз размеры будут либо снизу вверх, я обычно в таких случаях делая Item->Rectangle и смотрю чтобы занималась правильная область, потом обратно на Item возвращаюсь

Про Rectangle я в курсе. Выставление высоты и ширины помогло. Я надеялся есть способ элегантнее вроде ahchor.fill: parent.
Sic luceat lux!
Re[3]: О размере родительского элемента в QML
От: Igore Россия  
Дата: 17.06.21 11:12
Оценка:
Здравствуйте, Kernan, Вы писали:

I>>Ну как как, взять и написать что родитель зависит от размеров детей, только учти тут либо сверху вниз размеры будут либо снизу вверх, я обычно в таких случаях делая Item->Rectangle и смотрю чтобы занималась правильная область, потом обратно на Item возвращаюсь

K>Про Rectangle я в курсе. Выставление высоты и ширины помогло. Я надеялся есть способ элегантнее вроде ahchor.fill: parent.
К сожалению нет, только childrenRect.width, childrenRect.height, тут помогает, плюс implicitWidth, implicitHeight иногда пригодится
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.