锚点布局
from kivy.uix.anchorlayout import AnchorLayout from kivy.uix.button import Button from kivy.app import App from kivy.graphics import Rectangle,Color # 导入位置 颜色模块 # AnchorLayout中有anchor_x和anchor_y这两个参数 # anchor_x:默认为center 还可以left center right 左中右 # anchor_y:默认为center 还可以center top bottom 中上下 # 锚点布局又称为九宫格布局 class AnchorLayoutWidget(AnchorLayout): def __init__(self,**kwargs): super().__init__(**kwargs) # 执行布局的画布方法 with self.canvas: # 设置颜色 Color(1,1,1,1) # 这个画布大小为布局大小 self.rect=Rectangle(pos=self.pos,size=self.size) # TODO 位置绑定为布局位置 self.bind(pos=self.update_rect,size=self.update_rect) # 嵌套第一个布局 anchor_first=AnchorLayout(anchor_x='left',anchor_y='top') anchor_first.add_widget(Button(text='bt1',size_hint=[.3,.2])) # 嵌套第二个布局 anchor_second = AnchorLayout(anchor_x='right',anchor_y='bottom') anchor_second.add_widget(Button(text='bt2',size_hint=[.3,.2])) self.add_widget(anchor_first) self.add_widget(anchor_second) # 这里要传多值参数 def update_rect(self,*args): self.rect.pos=self.pos self.rect.size=self.size class AnchorLayoutApp(App): def build(self): return AnchorLayoutWidget() if __name__ == '__main__': AnchorLayoutApp().run()