Tkinter вызывает функцию с помощью кнопки или клавиши
Мне нужно создать функцию, которая запускается, когда я нажимаю кнопку графического интерфейса или когда я нажимаю клавишу типа ENTER. Это возможно? Я создал отдельные функции, которые выполняют один из этих двух случаев, могу ли я их объединить? Прилагаю код для лучшего понимания
LoginWindow = tk.Tk() #code of function with button
canvas = tk.Canvas(LoginWindow, width=480, height=120, bg='lightsteelblue2', relief='raised')
canvas.pack()
def getLogin():
tk.messagebox.showinfo("Hello", "Hello")
LogButton = tk.Button(text="Login", command=getLogin, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas.create_window(240, 60, window=LogButton)
LoginWindow.mainloop()
####
####
LoginWindow = tk.Tk() #code of function with ENTER key
canvas = tk.Canvas(LoginWindow, width=480, height=120, bg='lightsteelblue2', relief='raised')
canvas.pack()
def getLogin(event):
tk.messagebox.showinfo("Hello", "Hello")
LoginWindow.bind('<Return>', getLogin)
LoginWindow.mainloop()
есть способ объединить 2 функции
1 ответ
Решение
Вы можете изменить подпись функции следующим образом:
def getLogin(event=None):
tk.messagebox.showinfo("Hello", "Hello")
Тогда одна и та же функция может быть вызвана в двух разных случаях.