Kivy проверка пароля - PullRequest
       5

Kivy проверка пароля

0 голосов
/ 16 октября 2018

Новичок в kivy, я хочу посмотреть имя пользователя и передать в дб, но в настоящее время я пытался проверить свои собственные "логины".Я получаю:

AttributeError: у объекта 'str' нет атрибута 'fbind'

при запуске приложения.Что не так?

class MyApp(App):
    def build(self):
        main_grid = GridLayout(cols=1, spacing=10)
        main_box = BoxLayout(orientation='vertical',padding = 25)# Основной лэйаут.

        main_box.add_widget(Label(text='Login'))
        self.username = TextInput(text='',multiline=False,size_hint_y=None) # Обьявление логина
        main_box.add_widget(self.username)
        main_box.add_widget(Label(text='Password'))
        self.password = TextInput(text='', password=True, multiline=False, size_hint_y=None) # Обьявление пароля
        main_box.add_widget(self.password)
        main_box.add_widget(main_grid)

        main_grid.add_widget(Widget())
        main_grid.add_widget(Button(text='Войти',on_press=self.login))
        return main_box

    def login(self, instance):
        print(self.username.text)
        print(self.password.text)
        if self.username.text == 'admin':
            if self.password.text == 'password':
                popup = Popup(title='Logged',content='Logged in successfully, admin')
                popup.open()
            else:
                popup = Popup(title='Wrong password',content='Wrong password, admin. Go away.')
                popup.open()
        elif self.username.text == 'user':
            if self.password.text == 'userpass':
                popup = Popup(title='Logged',content='Logged in successfully, user')
                popup.open()
            else:
                popup = Popup(title='Wrong password',content='Wrong password, user. Go away.')
                popup.open()

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

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Проблема вызвана тем, что содержимое всплывающего окна ожидает отображения виджета, но вы передаете ему строку, поэтому решение состоит в том, чтобы заменить его, например, меткой.

def login(self, instance):
    print(self.username.text)
    print(self.password.text)
    if self.username.text == 'admin':
        if self.password.text == 'password':
            popup = Popup(title='Logged',content=Label(text='Logged in successfully, admin'))
            popup.open()
        else:
            popup = Popup(title='Wrong password',content=Label(text='Wrong password, admin. Go away.'))
            popup.open()
    elif self.username.text == 'user':
        if self.password.text == 'userpass':
            popup = Popup(title='Logged',content=Label(text='Logged in successfully, user'))
            popup.open()
        else:
            popup = Popup(title='Wrong password',content=Label(text='Wrong password, user. Go away.'))
            popup.open()
0 голосов
/ 16 октября 2018

Попробуйте использовать StringProperty для сохранения текста в текстовом поле.

self.usertext = StringProperty()
def on_text(self,text)
    self.usertext = text

textinput = TextInput()
textinput.bind(text = lambda x: on_text(x,x.text))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...