Kivy:BoxLayout与GridLayou

2024-05-29 03:59:33 发布

您现在位置:Python中文网/ 问答频道 /正文

BoxLayout(orientation='vertical')GridLayout(cols=1)

他们都做同样的事,不是吗?有理由选择其中一个吗?


Tags: colsvertical理由orientationboxlayoutgridlayout
1条回答
网友
1楼 · 发布于 2024-05-29 03:59:33

不同之处在于大小和位置。

一般来说,GridLayoutcols: 1)总是将元素保存在一列中,而在使用BoxLayoutorientation: 'vertical')时,组织单个小部件的灵活性更大。

这里有一个非常简单的例子,你可以用BoxLayout来做一些事情,因为它尊重pos_hintsizesize_hint(以及其他诸如center_xxyright的东西,verticalhorizontal方向的BoxLayout),这也会影响单个小部件:

<Test@BoxLayout>:
    orientation: 'vertical'
    Button:
        text: 'a'
        size_hint: None, None
        size: 100,50
        pos_hint: { 'center_x' : .5 }
    Button:
        text: 'b'

这是200x200屏幕中的输出:

BoxLayout with vertical orientation

如果您尝试使用GridLayout来执行相同的操作,则会得到:

GridLayout with cols: 1

最后,GridLayout有一些属性来控制列的大小:

  • col_default_width:所有列的默认宽度
  • col_width:每一列的宽度列表(在这里没有用处 因为我们只有一个)
  • col_force_default:它将忽略单个小部件的任何现有size_hintsize,并强制列宽
  • minimum_width:所以列不会收缩太多

相关问题 更多 >

    热门问题