如何组织 kivy 布局?

How can I organise kivy layout?

我是 python 的新手,想为我的小应用程序安装一个 UI。我使用 kivy 作为 GUI 框架。我想知道布局。

如何组织布局?我试过在 gridlayout 中嵌入 boxlayout,但总是弄乱位置。

您应该将 GridLayout 嵌入垂直方向的 BoxLayout 并使用 size_hint 到 select 小部件应该占用多少 space。例如 size_hint: 1, 0.25 结果,小部件在水平方向上获取所有可用 space,在垂直方向上获取可用 space 的 1/4。结果:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import BooleanProperty
from kivy.lang import Builder

Builder.load_string('''
<MyWidget>:
    orientation: 'vertical'
    Label:
        size_hint: 1, 0.25
        text: 'Label1'
    GridLayout:
        size_hint: 1, 0.25
        cols: 2
        Button
            text: 'Button1'
        Button
            text: 'Button2'
        Button
            text: 'Button3'
        Button
            text: 'Button4'
    Label:
        size_hint: 1, 0.5
        text: 'Label2'
''')

class MyWidget(BoxLayout):
    pass

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()