How to clear the Entry widget after a button is pressed in Tkinter?
python, tkinter, user-interface, widget
Solution
After poking around a bit through the Introduction to Tkinter, I came up with the code below, which doesn't do anything except display a text field and clear it when the `"Clear text"` button is pushed:
import tkinter as tk
class App(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master, height=42, width=42)
self.entry = tk.Entry(self)
self.entry.focus()
self.entry.pack()
self.clear_button = tk.Button(self, text="Clear text", command=self.clear_text)
self.clear_button.pack()
def clear_text(self):
self.entry.delete(0, 'end')
def main():
root = tk.Tk()
App(root).pack(expand=True, fill='both')
root.mainloop()
if __name__ == "__main__":
main()
Problem
I'm trying to clear the `Entry` widget after the user presses a button using Tkinter. I tried using `ent.delete(0, END)`, but I got an error saying that strings don't have the attribute delete. Here is my code, where I'm getting error on `real.delete(0, END)`: ``` secret = randrange(1,100) print(secret) def res(real, secret): if secret==eval(real): showinfo(message='that is right!') real.delete(0, END) def guess(): ge = Tk() ge.title('guessing game') Label(ge, text="what is your guess:").pack(side=TOP) ent = Entry(ge) ent.pack(side=TOP) btn=Button(ge, text="Enter", command=lambda: res(ent.get(),secret)) btn.pack(side=LEFT) ge.mainloop() ```