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

时间:2015-02-15 15:15:12

标签: kivy

我正在使用Kivy和.kv文件。这就是我的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初始化屏幕的正确方法吗?这有效,但我不确定构造函数是否正确。

2 个答案:

答案 0 :(得分:2)

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

您也可以将其设置为kv,然后您不必为此定义__init__

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

答案 1 :(得分:0)

你写道: WelconeScreen类

但它是: Welco m eScreen