Python kivy GridLayout 布局问题

小白初学kivy,教程中有关于 GridLayout 方面的内容,可以完成两行排列布局,但是已到第三行就会出现异常,已经弄了两天了还没整明白。
哪位大佬帮忙看看代码需要如何进行修改:

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
# from kivy.core.window import Window


class HomeScreen(GridLayout):

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.cols = 1
        self.rows = 3

        # 第一行合并为一列
        self.add_widget(Label(text='My World', font_size=50, height=100, size_hint_y=None))

        # 第二行 分开为 2 列
        self.layout_1 = GridLayout(cols=2)
        self.layout_1.add_widget(Button(text='Hello 1', height=220, size_hint_y=None))
        self.layout_1.add_widget(Button(text='World 1'))

        # 第三行 
        self.layout_1.add_widget(Button(text='Hello 2', height=220, size_hint_y=None))
        self.layout_1.add_widget(Button(text='World 2'))
        self.add_widget(self.layout_1)

                # 第四行 分开为 3列
        self.layout_2 = GridLayout(cols=3)
        self.layout_2.add_widget(Button(text='hello', height=50, size_hint_y=None))
        self.layout_2.add_widget(Button(text='world', height=50, size_hint_y=None))
        self.layout_2.add_widget(Button(text='hell', height=50, size_hint_y=None))
        self.add_widget(self.layout_2)

class TextApp(App):
    def build(self):
        return HomeScreen()

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

以上代码实现的效果如下,我需要把第三行移动到最下边:
如图,如何能把红框位置的按钮移动到最下面

**回复 liujianchen_linux 的意见,去掉size_hint_y=None运行后height命令不起作用**

研究了好几天终于把这个问题给解决了,使用size_hint_y=命令直接定义行高就行了
界面中看似是4行,但是实际上在代码中是3行,代码中第2行、第3行是看做Gridlayout中的一行.

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.label import Label


class HomeScreen(GridLayout):

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.cols = 1

        # 第一行合并为一列
        layout = GridLayout(cols=1, size_hint_y=0.25)
        layout.add_widget(Label(text='我的世界',font_size=40))
        self.add_widget(layout)

        # 第二行 分开为 2 列
        layout_1 = GridLayout(cols=2)
        layout_1.add_widget(Button(text='别来无恙!',font_size=30))
        layout_1.add_widget(Button(text='Hello World 1',font_size=30))
        # 第三行
        layout_1.add_widget(Button(text='你好世界!',font_size=30))
        layout_1.add_widget(Button(text='Hello World 2',font_size=30))
        self.add_widget(layout_1)

        # 第四行  分开为 3 列
        layout_2 = GridLayout(cols=3, size_hint_y=0.15)
        layout_2.add_widget(Button(text='hello',font_size=20))   # , size_hint_y=None
        layout_2.add_widget(Button(text='world',font_size=20))
        layout_2.add_widget(Button(text='hello',font_size=20))
        self.add_widget(layout_2)



class TextApp(App):
    def build(self):
        return HomeScreen()


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

以上代码运行结果如下:
图片说明

图片说明