from kivy.app import App from kivy.uix.floatlayout import FloatLayout class FloatLayoutWidget(FloatLayout): def __init__(self,**kwargs): super().__init__(**kwargs) class FloatLayoutApp(App): def build(self): return FloatLayoutWidget() # 这里是返回一个类 if __name__ == '__main__': FloatLayoutApp().run()
=============kv文件===============
<Button>:
font_size:40 # 字体大小 # 全局按扭
size_hint:0.3,0.6 # 搂扭大小
<FloatLayoutWidget>:
canvas:
Color:
rgba:[1,1,1,1]
Rectangle:
size:self.size
pos:self.pos
Button:
text:"hi china"
background_color:0.1,0.5,0.6,1 # 按扭背景颜色
pos_hint:{"x":0,"top":1} # 按扭位置
Button:
text:"hi man"
background_color:1,0,0,1
pos_hint:{"x":0.35,"y":0.3}
Button:
text:"hi woman"
background_color:0.4,0.5,0.6,1
pos_hint:{"x":.7,"top":1}
Button:
text:"over"
background_color:0.8,0.9,0.2,1
pos_hint:{"x":0,"bottom":1} # 底部
========================
下面是纯python
===================
from kivy.app import App from kivy.uix.button import Button from kivy.uix.floatlayout import FloatLayout from kivy.graphics import Rectangle,Color class FloatLayoutApp(App): def build(self): def update_rect(layout,*args): # 设置背景尺寸 layout.rect.pos = layout.pos layout.rect.size = layout.size float_layout = FloatLayout() # 设置背景颜色 with float_layout.canvas: Color(1,1,1,1) float_layout.rect = Rectangle(pos = float_layout.pos,size = float_layout.size) float_layout.bind(pos = update_rect,size=update_rect) # 在布局内的[300,200]处添加一个尺寸为0.3,0.2的按扭 button = Button(text='hello FloatLayout',size_hint=(.5,.1),pos = (200,0)) # 将按钮添加到布局内 float_layout.add_widget(button) return float_layout if __name__ == '__main__': FloatLayoutApp().run()