kivy浮点布局

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()
原文地址:https://www.cnblogs.com/vip136510786/p/14596846.html