初始化 Kivy 屏幕的正确方法是什么?

What is the correct way to initialize a Kivy Screen?

我正在使用带有 .kv 文件的 Kivy。这就是我的 Python 代码的样子:

class WelconeScreen(Screen):
    def __init__(self, **kwargs):
        self.name='home'
        super(Screen,self).__init__(**kwargs)

class QuestionScreen(Screen):
    def __init__(self, **kwargs):
        self.name='question'
        super(Screen,self).__init__(**kwargs)

class RootScreen(ScreenManager):
    pass

class TestApp(App):
   def build(self):
        return RootScreen()

if __name__ == '__main__':
    appVar = TestApp()
    TestApp().run()

这是我的 .kv 文件:

<RootScreen>:
    WelcomeScreen:
    QuestionScreen:

<WelcomeScreen>:
    Button:
        text: 'Download DB'
<QuestionScreen>:
    BoxLayout:
        Button:
            text: 'My settings button'
        Button:
            text: 'Back to menu'
            on_press: root.manager.current = 'home'

这是使用 Kivy 初始化屏幕的正确方法吗?这行得通,但我不确定构造函数是否是正确的方法。

name 是一个 kivy 属性,所以你可能想在调用 super 之后而不是之前初始化它。

你也可以在 kv 中设置它,这样你就不必为此定义一个 __init__:

<WelcomeScreen>:
    name: 'home'
    Button:
        text: 'Download DB'

你写: class 欢迎屏幕

但它是: class WelcomeScreen