我正在使用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初始化屏幕的正确方法吗?这有效,但我不确定构造函数是否正确。
答案 0 :(得分:2)
name
是一个kivy属性,所以你可能想在调用super之后初始化它,而不是之前。
您也可以将其设置为kv,然后您不必为此定义__init__
:
<WelcomeScreen>:
name: 'home'
Button:
text: 'Download DB'
答案 1 :(得分:0)
你写道: WelconeScreen类
但它是: Welco m eScreen