BoxLayout(orientation='vertical')
VS. GridLayout(cols=1)
:Kivy: BoxLayout против GridLayout
Они оба делают то же самое, нет? Есть ли причина выбора одного над другим?
BoxLayout(orientation='vertical')
VS. GridLayout(cols=1)
:Kivy: BoxLayout против GridLayout
Они оба делают то же самое, нет? Есть ли причина выбора одного над другим?
Различия включают в себя размер и положение.
В общем, GridLayout
(cols: 1
) всегда будет держать элементы в одном столбце, в то время как есть больше гибкости для организации отдельных виджетов при использовании BoxLayout
(orientation: 'vertical'
).
Вот очень простой пример того, что вы можете сделать с BoxLayout
, потому что он почитает pos_hint
, size
и size_hint
(и другие, такие, как center_x
, x
, y
, right
, - обратите внимание, что они также зависят от ориентации vertical
или horizontal
из BoxLayout
), который влияет на отдельные виджеты:
<[email protected]>:
orientation: 'vertical'
Button:
text: 'a'
size_hint: None, None
size: 100,50
pos_hint: { 'center_x' : .5 }
Button:
text: 'b'
Это выход на экране 200х200:
Если вы пытаетесь сделать то же самое, но с использованием GridLayout
вместо этого, то вы получите это:
Наконец, GridLayout
обладает некоторыми свойствами, чтобы контролировать размер столбца:
col_default_width
: для стандартной ширины всех столбцовcol_width
: a lis т ширины для каждого столбца (не полезной в этом случае, так как мы имеем только один)col_force_default
: который будет игнорировать любые существующие size_hint
или size
для отдельных виджетов и заставить ширину столбцаminimum_width
: так что столбец не дают усадки слишком многоВы забыли «' »в конце pos_hint, и это сводит меня с ума ... –
BoxLayout __probably__ имеет меньше работы, чтобы сделать под капотом ... но его маргинал я бы представил. так что идите с тем, что чувствует naturak для этого. Я лично считаю, что вертикальная boxlayout лучше описывает, что это такое. –