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)