BoxLayout的特点
自动排列:BoxLayout会根据其orientation属性(垂直或水平)自动排列其子部件。这简化了布局的过程,尤其是当你有许多需要按顺序排列的部件时。可定制的间距和对齐:通过spacing属性,你可以控制子部件之间的间距。使用padding属性,你可以添加布局边缘和子部件之间的额外空间。此外,你可以通过调整子部件的size_hint和pos_hint属性来控制它们的大小和位置(尽管在BoxLayout中,位置通常是由布局自动管理的)。灵活的子部件尺寸:子部件在BoxLayout中可以具有灵活的尺寸。通过设置size_hint属性,你可以指定子部件应占用其父布局可用空间的比例。例如,size_hint_x: 0.5会使水平BoxLayout中的子部件占据一半的宽度。高效的布局更新:当BoxLayout的尺寸变化时(例如,窗口被调整大小时),它会自动重新计算并更新其子部件的位置和尺寸,确保它们仍然按照指定的方向和对齐方式正确排列。支持嵌套布局:你可以在一个BoxLayout内部嵌套另一个BoxLayout或其他类型的布局,以创建更复杂的用户界面。这种灵活性使得BoxLayout成为构建各种动态和响应式界面的强大工具。
界面
代码
orientation: ‘vertical’ 这里是排例方式,不写是水平布居
#:kivy 1.0
#:import hex kivy.utils.get_color_from_hex<MyBoxLayout>:orientation: 'vertical'padding: 10spacing: 10Button:text: 'Button 1'background_color: hex('#FF0000') # Red colorButton:text: 'Button 2'background_color: hex('#00FF00') # Green colorButton:text: 'Button 3'background_color: hex('#0000FF') # Blue colorButton:text: 'Button 4'background_color: hex('#FF0000') # Red colorButton:text: 'Button 5'background_color: hex('#00FF00') # Green colorButton:text: 'Button 6'background_color: hex('#0000FF') # Blue colorButton:text: 'Button 7'background_color: hex('#FF0000') # Red colorButton:text: 'Button 8'background_color: hex('#00FF00') # Green colorButton:text: 'Button 9'background_color: hex('#0000FF') # Blue color
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.lang import Builderclass MyBoxLayout(BoxLayout):passclass BoxLayoutApp(App):def build(self):# 加载kv文件Builder.load_file('MyBoxLayout.kv')return MyBoxLayout()if __name__ == '__main__':BoxLayoutApp().run()