从登录屏幕移动到菜单屏幕

时间:2016-02-18 12:01:13

标签: python kivy

我是kivy的新手。在下面的代码中,登录成功后,我无法从登录屏幕移动到MenuScreen(self.parent.current = MenuScreen())。 如何解决这个问题?。

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.popup import Popup
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.app import App 
from kivy.uix.boxlayout import BoxLayout

class LoginScreen(GridLayout):
    def __init__(self, **kwargs):
        super(LoginScreen, self).__init__(**kwargs)

        self.labelUsername = Label(text='User Name : ',pos = (200,300))
        self.add_widget(self.labelUsername)
        self.inputUser = TextInput(pos = (300,340), multiline=False,height=40,width = 150)
        self.add_widget(self.inputUser)
        self.labelPassword = Label(text='Password :',pos = (200,250))
        self.add_widget(self.labelPassword)
        self.inputPasswd = TextInput(pos = (300,280), height=40,width = 150,password=True, multiline=False)
        self.add_widget(self.inputPasswd)
        self.btnLogin = Button(text = 'Login',pos = (320,230),width = 100,height = 30 )
        self.add_widget(self.btnLogin)
        self.btnLogin.bind(on_press=self.get_user_passwd)

    def get_user_passwd(self,*args):
        username, passwd = self.inputUser.text,self.inputPasswd.text
        if username == passwd:
            self.parent.current = MenuScreen()
        else:
            pop_up = Popup(title="username and password should be the same.", size_hint=(.3, .3))
            pop_up.open()

class MenuScreen(BoxLayout):
    def __init__(self,*args):
        l = BoxLayout(cols="2")
        btn = Button(text="ad")
        l.add_widget(btn)
        print "flag" 

class MyApp(App):
    def build(self):
        screen_manager = ScreenManager()
        #screen_manager.add_widget(LoginScreen(name='LoginScreen'))
        #screen_manager.add_widget(MenuScreen(name='menu'))
        return LoginScreen()

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

0 个答案:

没有答案