Luego de tanto luchar hemos hallado el resultado de este inconveniente que agunos usuarios de este espacio tienen. Si quieres compartir algún detalle no dudes en aportar tu comentario.
Solución:
Después de hurgar un poco en la Introducción a Tkinter, se me ocurrió el siguiente código, que no hace nada excepto mostrar un campo de texto y borrarlo cuando el "Clear text"
se presiona el botón:
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()
No tengo claro tu pregunta. De http://effbot.org/tkinterbook/entry.htm#patterns, parece que solo necesita hacer una tarea después de llamar a la eliminación. Para agregar texto de entrada al widget, use el método de inserción. Para reemplazar el texto actual, puede llamar a eliminar antes de insertar el nuevo texto.
e = Entry(master)
e.pack()
e.delete(0, END)
e.insert(0, "")
¿Podrías publicar un poco más de código?
real
obtiene el valor ent.get()
que es solo un string. No tiene idea de dónde vino y no hay forma de afectar el widget.
En vez de real.delete()
llamar .delete()
en el propio widget de entrada:
def res(ent, real, secret):
if secret == eval(real):
showinfo(message='that is right!')
ent.delete(0, END)
def guess():
...
btn = Button(ge, text="Enter", command=lambda: res(ent, ent.get(), secret))
Recuerda que puedes mostrar este artículo si te ayudó.