Tkinter не может получить значения для функции по нажатию кнопки

Итак, я пытаюсь получить значения из входов (3) и передать их функции нажатием кнопки.

Вот что у меня сейчас:

Label(self.master, text="Name").grid(row=0, sticky=W)
    Label(self.master, text="Username").grid(row=1, sticky=W)
    Label(self.master, text="Email").grid(row=2, sticky=W)

    self.e_name = Entry(self.master).grid(row=0, column=1)
    self.e_username = Entry(self.master).grid(row=1, column=1)
    self.e_email = Entry(self.master).grid(row=2, column=1)

    Button(self.master, text="Login", command=self.login_client).grid(row=3, column=1, sticky=E)

И функция:

def login_client(self):
    print(self.e_name.get())

Теперь я получаю эту ошибку: AttributeError: 'NoneType' object has no attribute 'get'...

Полный код файла можно найти здесь: https://gist.github.com/RosiersRobin/343c0194fde2e8e3184f24cb5aecac28

Я просто хочу, чтобы ввод от пользователя был дан в функции login_client

1 ответ

Решение

Ваша проблема заключается в .grid() вызов. возврат сетки None, так self.e_name будет None, Просто измените эти строки на следующие:

self.e_name = Entry(self.master)
self.e_name.grid(row=0, column=1)
self.e_username = Entry(self.master)
self.e_username.grid(row=1, column=1)
self.e_email = Entry(self.master)
self.e_email.grid(row=2, column=1)
Другие вопросы по тегам