python enter

https://stackoverflow.com/questions/16996432/how-do-i-bind-the-enter-key-to-a-function-in-tkinter

import tkinter as tk root = tk.Tk() root.geometry("300x200") def func(event): print("You hit return.") def onclick(event): print("You clicked the button") root.bind('<Return>', onclick) button = tk.Button(root, text="click me") button.bind('<Button-1>', onclick) button.pack() root.mainloop()

Here it is in a class setting:

import tkinter as tk class Application(tk.Frame): def __init__(self): self.root = tk.Tk() self.root.geometry("300x200") tk.Frame.__init__(self, self.root) self.create_widgets() def create_widgets(self): self.root.bind('<Return>', self.parse) self.grid() self.submit = tk.Button(self, text="Submit") self.submit.bind('<Button-1>', self.parse) self.submit.grid() def parse(self, event): print("You clicked?") def start(self): self.root.mainloop() Application().start()

Full code:

from tkinter import * from tkinter.messagebox import showinfo def reply(name): showinfo(title="Reply", message = "Hello %s!" % name) top = Tk() top.title("Echo") top.iconbitmap("Iconshock-Folder-Gallery.ico") Label(top, text="Enter your name:").pack(side=TOP) ent = Entry(top) ent.bind("<Return>", (lambda event: reply(ent.get()))) ent.pack(side=TOP) btn = Button(top,text="Submit", command=(lambda: reply(ent.get()))) btn.pack(side=LEFT) top.mainloop()

As you can see, creating a lambda function with an unused variable "event" solves the problem.