Как в tkinter нажатием кнопки заставить работать 2 виджета?
Реализую игру:
в одном поле tk.Text пользователь пишет вопрос и нажимает под ним кнопку "Спросить", а во втором поле tk.Text программа выводит ответы, случайным образом выбранные из имеющегося списка.
Написал код, который к выводу ответов не приводит. Более того, ловлю ошибку: TypeError: call_funcs() takes 0 positional arguments but 1 was given
Что не так?
Код:
# Обработчик вопроса пользователя
def questionQuery(question):
question = text_box_question.get('1.0', tk.END) # читаем текст из виджета text_box_question
time.sleep(2)
# Функция возврата случайных ответов
def answerQuery():
text_box_answer.insert(tk.END, 'Хмм...' + '\n') # и выводим в виджет text_box_answer
window.update_idletasks()
time.sleep(2)
text_box_answer.insert(tk.END, 'Я заглядываю за повороты судьбы, чтобы узнать о грядущем' + '\n')
window.update_idletasks()
window.after(2000, lambda: text_box_answer.insert(tk.END, random.choice(responses) + '\n'))
# Функция для создания цепи событий по одному клику кнопки
def call_funcs():
questionQuery()
answerQuery()
# привязываем к кнопке обработку события
button_ask.bind('<Button>', call_funcs)
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
Надо правильно определять функцию-обработчик события. У неё должен быть один обязательный аргумент (см. документацию).
def call_funcs(event):
...