2024-05-29 03:59:33 发布
网友
BoxLayout(orientation='vertical')与GridLayout(cols=1):
BoxLayout(orientation='vertical')
GridLayout(cols=1)
他们都做同样的事,不是吗?有理由选择其中一个吗?
不同之处在于大小和位置。
一般来说,GridLayout(cols: 1)总是将元素保存在一列中,而在使用BoxLayout(orientation: 'vertical')时,组织单个小部件的灵活性更大。
GridLayout
cols: 1
BoxLayout
orientation: 'vertical'
这里有一个非常简单的例子,你可以用BoxLayout来做一些事情,因为它尊重pos_hint、size和size_hint(以及其他诸如center_x、x、y、right的东西,vertical或horizontal方向的BoxLayout),这也会影响单个小部件:
pos_hint
size
size_hint
center_x
x
y
right
vertical
horizontal
<Test@BoxLayout>: orientation: 'vertical' Button: text: 'a' size_hint: None, None size: 100,50 pos_hint: { 'center_x' : .5 } Button: text: 'b'
这是200x200屏幕中的输出:
如果您尝试使用GridLayout来执行相同的操作,则会得到:
最后,GridLayout有一些属性来控制列的大小:
col_default_width
col_width
col_force_default
minimum_width
不同之处在于大小和位置。
一般来说,
GridLayout
(cols: 1
)总是将元素保存在一列中,而在使用BoxLayout
(orientation: 'vertical'
)时,组织单个小部件的灵活性更大。这里有一个非常简单的例子,你可以用
BoxLayout
来做一些事情,因为它尊重pos_hint
、size
和size_hint
(以及其他诸如center_x
、x
、y
、right
的东西,vertical
或horizontal
方向的BoxLayout
),这也会影响单个小部件:这是200x200屏幕中的输出:
如果您尝试使用
GridLayout
来执行相同的操作,则会得到:最后,
GridLayout
有一些属性来控制列的大小:col_default_width
:所有列的默认宽度col_width
:每一列的宽度列表(在这里没有用处 因为我们只有一个)col_force_default
:它将忽略单个小部件的任何现有size_hint
或size
,并强制列宽minimum_width
:所以列不会收缩太多相关问题 更多 >
编程相关推荐