BoxLayout(orientation='vertical')对GridLayout(cols=1):
他们都做同样的事,不是吗?有理由选择其中一个吗?

最佳答案

不同之处在于大小和位置。
通常,GridLayout(cols: 1)总是将元素保持在一列中,而在使用BoxLayout(orientation: 'vertical')时,组织单个控件的灵活性更大。
这里有一个非常简单的例子,你可以用“cc>”来做,因为它尊敬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屏幕中的输出:
如果你想做同样的事情,但是使用BoxLayout,那么你得到了:
最后,GridLayout有一些属性来控制列的大小:
GridLayout:所有列的默认宽度
col_default_width:每列的宽度列表(在此中不可用
因为我们只有一个)
:将忽略单个小部件的任何现有col_width或col_force_default,并强制列宽。
size_hint:因此列不会收缩太多

关于python - Kivy:BoxLayout与GridLayout,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18222194/

10-12 18:35