Python Kivy,无法使用 Python 将标签添加到屏幕

Python Kivy, Unable to add Label to screen with Python

我正在尝试使用 Python 和 Kivy 向屏幕添加一个简单的标签。我知道如何使用 Builder.load_string() 方法来做到这一点,但我希望通过 Python.

使用 Kivy 库来做到这一点

当我 运行 下面的代码时,我得到一个空白的紫色屏幕,但是当我将标签放入 Builder.load_string() 方法时,它工作正常。我做错了什么?

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen

Builder.load_string("""
<HomePage>:
    FloatLayout:
        canvas.before:
            Color:
                rgb: .5,0,.75
            Rectangle:
                size: self.size
""")


class HomePage(Screen):
    layout = FloatLayout()
    home_title = Label(text="text")
    layout.add_widget(home_title)


class LabelApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(HomePage(name='home'))
        return sm

if __name__ == "__main__":
    LabelApp().run()

这取决于你想做什么:如果你总是想将这些小部件添加到 HomePage,你应该在 HomePage__init__ 方法中执行此操作(不要不要忘记在此处添加 self.add_widget(layout)

您也可以将它们添加到 LabelAppbuild 方法中。只需将 HomePage 分配给一个变量,然后再次使用 add_widget 即可。