Выдаёт ошибку при попытке забиндить enter на кнопку в Python Tkinter
Текст ошибки:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Sem\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:\Users\Sem\Desktop\Foxford\Python\hh.pyw", line 39, in btnReturn
Btn()
TypeError: 'Button' object is not callable
Кнопка:
Btn = Button(window, text="Рассчитать", command=clicked)
Btn.grid(column=0, row=10)
То как я пытаюсь забиндить:
def btnReturn(e):
Btn()
window.bind('<Return>', btnReturn)
Как исправить ошибку, или может быть можно как-то обойти этот способ бинда?
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Ошибка TypeError: 'Button' object is not callable переводится примерно так: "Объект типа Button не вызываемый". Т.е. вы пытаетесь вызвать кнопку как функцию, а для кнопок такая возможность не предусмотрена (не реализован метод __call__), отсюда ошибка.
Если нужно выполнить то же действие, что и при нажатии кнопки, вызовите привязанную к кнопке функцию (у вас это clicked):
def clicked():
print('Hello!')
Btn = Button(window, text="Рассчитать", command=clicked)
Btn.grid(column=0, row=10)
def btnReturn(e):
clicked()
window.bind('<Return>', btnReturn)