Имеется начальное окно где нужно выбрать войти или пройти регистрацию. Если нажимаем зарегистрироваться - появляется окно регистрации, далее введенные данные сохраняются в текстовый документ
intro() -> registration() -> save().
Проблема в том, что функция
save() не видит переменных login и password и выдает ошибки:
Traceback (most recent call last):
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "E:/Python/Test/authorization.py", line 38, in <lambda>
button_register = Button(text = 'Зарегистрироваться!', command = lambda : save())
File "E:/Python/Test/authorization.py", line 72, in save
data = [login.get(), password.get()]
NameError: name 'login' is not defined
from tkinter import *
root = Tk()
root.geometry('500x500')
root.title('Вход\Регистрация')
def registration():
title_reg = Label(text = 'Зарегистрироваться в системе')
text1_reg = Label(text= 'Придумайте логин: ')
login = Entry()
text2_reg = Label(text= 'Придумайте пароль: ')
password = Entry()
text3_reg = Label(text = 'Введите пароль еще раз: ')
password2 = Entry(show = '*')
button_register = Button(text = 'Зарегистрироваться!', command = lambda : save())
title_reg.pack()
text1_reg.pack()
login.pack()
text2_reg.pack()
password.pack()
text3_reg.pack()
password2.pack()
button_register.pack()
def authorize():
title_login = Label(text = 'Войти в систему')
text1_login = Label(text= 'Введите логин: ')
login = Entry()
text2_login = Label(text= 'Введите пароль: ')
password = Entry()
button_login = Button(text = 'Войти!', command = lambda : save())
title_login.pack()
text1_login.pack()
login.pack()
text2_login.pack()
password.pack()
button_login.pack()
def intro():
title_intro = Label(text = 'Войдите или зарегистрируйтесь чтобы продолжить', )
button_register_intro = Button(text = 'Зарегистрироваться', command = lambda : registration())
button_login_intro = Button(text = 'Войти', command = lambda : authorize())
title_intro.pack()
button_login_intro.pack()
button_register_intro.pack()
def save():
data = [login.get(), password.get()]
file = open('database.txt', 'a')
for line in data:
file.write(line + '\n')
intro()
root.mainloop()