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

Jinku Hu 30 enero 2023
  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
Cómo configurar el texto del Widget de entrada de Tkinter con un botón

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.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - Tkinter Entry