StackLayout为堆栈布局,在StackLayout布局中,只要没有超出布局的范围,可以垂直或水平地摆放子控件,子控件的大小可以不相同。通过orientation属性指定布局的方向,默认值”lr-tb"。
lr,表示从左到右,rl,表示从右往左,tb,表示自上而下,bt,表自下而上。orientation有8个有效属性:
按行,lr-tb,lr-bt,rl-tb,rl-bt
按列,tb-lr,bt-lr,tb-rl,bt-rl
示例:
.py
from kivy.app import App from kivy.uix.stacklayout import StackLayoutclass StackLayoutWin(StackLayout):def __int__(self,**kwargs):super().__init__(**kwargs)class StackApp(App):def build(self):return StackLayoutWin()if __name__=="__main__":StackApp().run()
.kv
<StackLayoutWin>:orientation:'lr-tb'canvas:Color:rgba:[1,1,1,1]Rectangle:size:self.sizepos:self.posButton:text:'Btn1'size_hint:[.2,.1]Button: