Cómo configurar el texto del Widget de entrada de Tkinter con un botón

  1. El método de Tkinter para delete e insert el contenido de la Entry
  2. El método StringVar de Tkinter para establecer el contenido del Widget de Entry de Tkinter

Tenemos dos métodos para establecer o cambiar el texto del widget Entry de Tkinter haciendo clic en un botón,

  1. El método de delete e insert de Tkinter
  2. El método de Tkinter StringVar

El método de Tkinter para delete e insert el contenido de la Entry

El widget Entry de Tkinter no tiene un método set dedicado para establecer el contenido del Entry. Necesita primero borrar el contenido existente y luego insertar el nuevo contenido si tenemos que cambiar el contenido completamente.

Completa los códigos de trabajo para establecer el texto en Entry con los métodos delete e insert

import tkinter as tk
root = tk.Tk()
root.geometry("400x50")

def setTextInput(text):
    textExample.delete(0,"end")
    textExample.insert(0, text)

textExample = tk.Entry(root)
textExample.pack()

btnSet = tk.Button(root, height=1, width=10, text="Set", 
                    command=lambda:setTextInput("new content"))
btnSet.pack()

root.mainloop()

Tkinter Set Contenido de Tkinter Entry_delete y método de inserción

textExample.delete(0,"end")

El método de delete de Entry borra el rango de caracteres especificado en la Entry.

0 es el primer carácter y "end" es el último carácter del contenido del widget Entry. Por lo tanto, delete(0, "end") borra todo el contenido dentro de la caja Entry.

textExample.insert(0, text)

El método insert inserta el texto en la posición especificada. En el código anterior, inserta el text al principio.

El método StringVar de Tkinter para establecer el contenido del Widget de Entry de Tkinter

Si el contenido del widget de Tkinter Entry ha sido asociado con un objeto StringVar, podría cambiar automáticamente el contenido del widget de Tkinter Entry cada vez que el valor de StringVar se actualiza.

Completar los códigos de trabajo para establecer el texto en Entry con el objeto StringVar

import tkinter as tk
root = tk.Tk()
root.geometry("400x50")

def setTextInput(text):
    textEntry.set(text)

textEntry = tk.StringVar()

textExample = tk.Entry(root,
                      textvariable = textEntry)
textExample.pack()

btnSet = tk.Button(root,
                   height=1,
                   width=10,
                   text="Set",
                   command=lambda:setTextInput("new content"))
btnSet.pack()

root.mainloop()
textEntry = tk.StringVar()

textExample = tk.Entry(root,
                      textvariable = textEntry)

TextEntry es un objeto StringVar y está asociado con el contenido del texto, o en otras palabras, la opción textvariable del widget Entry.

textEntry.set(text)

Si textEntry se actualiza para tener un nuevo valor text, entonces los widgets cuya textvariable se asocian con él se actualizarán automáticamente.

Artículo relacionado - Tkinter Entry

  • Cómo establecer el texto por defecto del Widget de entrada de Tkinter