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=(.3, .2), pos=(300, 200))
# 将按钮添加到布局内
float_layout.add_widget(button)
# 返回布局
return float_layout
if __name__ == "__main__":
FloatLayoutApp().run()
#上面是纯python无Kv文件
#main.py
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()
#floatlayout.kv
<Button>:
font_size: 40
size_hint: 0.3, 0.3
<FloatLayoutWidget>:
canvas:
Color:
rgba: [1, 1, 1, 1]
Rectangle:
size: self.size
pos: self.pos
Button:
text: "Bt0"
background_color: 0.1, 0.5, 0.6, 1
pos_hint: {"x":0, "top":1}
Button:
text:"Bt1"
background_color: 1, 0, 0, 1
pos_hint: {"x":0.35, "y":0.3}
Button:
text:"Bt2"
background_color: 0.4, 0.5, 0.6, 1
pos_hint: {"x":.7, "bottom":0}
Button:
text:"Bt3"
background_color: 0, 0, 1, 1
pos_hint: {"x":.7, "top":1}
Button:
text:"Bt4"
background_color: 0.8, 0.9, 0.2, 1
pos_hint: {"x":0, "bottom":1}
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.graphics import Rectangle, Color
class BoxLayoutWidget(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# 设置背景颜色(可忽略)
with self.canvas:
Color(1, 1, 1, 1)
self.rect = Rectangle(pos=self.pos, size=self.size)
self.bind(pos=self.update_rect, size=self.update_rect)
# 添加两个按钮
self.add_widget(Button(text='Hello'))
self.add_widget(Button(text='BoxLayout'))
def update_rect(self, *args):
"""设置背景尺寸,可忽略"""
self.rect.pos = self.pos
self.rect.size = self.size
class BoxApp(App):
def build(self):
return BoxLayoutWidget()
if __name__ == "__main__":
BoxApp().run()
#上面是纯Python无kv文件
#main.py
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class BoxLayoutWidget(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
class BoxApp(App):
def build(self):
return BoxLayoutWidget()
if __name__ == "__main__":
BoxApp().run()
#box.kv
<BoxLayoutWidget>:
orientation: 'vertical'
padding:[10, 40, 40, 30]
canvas:
Color:
rgba: [1, 1, 1, 1]
Rectangle:
size: self.size
pos: self.pos
Button:
text: 'Hello'
background_color: .6, .2, .2, 1
Button:
text: 'BoxLayout'
background_color: .2, .6 , .3, 1
BoxLayout:
o