一起学习kyvy(二):页面布局一:大小与位置
kivy中主要有以下几种布局方式:FloatLayout、BoxLayout、AnchorLayout、GridLayout、RelativeLayout、Scatterlayout、StackLayout。
(一)大小
在kivy中,控件的大小控制,一般使用size_hint,值范围:0-1,代表控件的宽或高与当前窗口的宽或高的比例值。如:在kv界面布局文件中,表示一个Label在当前窗口的位置:
<MyWidget>:
Label:
size_hint: 0.5, 0.3
表示Label在窗口,宽为0.5,高为0.3。
(二)位置
对于控件位置的控制,使用pos来指定具体值控制。如[100,200]。注意,窗口左下角座标是(0,0)。也可用pos_hint,值范围:0-1,代表控件的宽或高与当前窗口的宽或高的比例值:
<MyWidget>:
Label:
size_hint: 0.5, 0.3
pos_hint: 0.3, 0.5
表示Label在窗口,宽为0.5,高为0.3,位置在x为窗口的0.3,y为窗口的0.5的地方。
示例:
main.py
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
class MyWidget(FloatLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
class SizePosApp(App):
def build(self):
return MyWidget()
if __name__ == "__main__":
SizePosApp().run()
kv文件:
sizepos.kv
<MyWidget>:
Button:
text: 'Button1'
size_hint: 0.2, 0.15
pos_hint: {'x':0.2, 'y': 0.6}
Button:
text: 'Button2'
size_hint: 0.2, 0.15
pos_hint: {'x':0.5, 'y': 0.3}
效果: