使用内部布局的大小、宽度和高度属性进行缩放
示例:
kv文件->
#file name: my.kv
<MyFloat>:
MyButton:
text: 'Press here one'
pos:20,50
size:200,20
MyButton:
text: 'Press me two'
pos:500,500
size_hint:None,None
size:200,20
main.py文件:
#file name: main.py
import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
class MyButton(Button):
pass
class MyFloat(FloatLayout):
pass
class MyApp(App):
def build(self):
return MyFloat()
if __name__ == '__main__':
MyApp().run()
运行结果如下:
显而易见,按钮一没有正常显示,而按钮二正常显示,容易看出按钮一对应kv文件中size并未起到作用,与按钮二对比可知,按钮一大小定义失效原因在于没有设置size_hint为None
改进后kv文件:
<MyFloat>:
MyButton:
text: 'Press here one'
pos:20,50
size_hint:None,None
size:200,20
MyButton:
text: 'Press me two'
pos:500,500
size_hint:None,None
size:200,20
正常显示,
哈哈,那如果说仅仅将size_hint_x定义为None呢?或者是将size_hint_y定义为None会怎么样呢?
让我们来探讨一下,当size_hint_x为None时,size的值仅在水平方向生效,如图:
同理,当size_hint_y为None时:
size的属性值仅在竖直方向上生效