Como definir o texto do widget de entrada do Tkinter com um botão

  1. Método Tkinter delete e insert para definir o conteúdo do Entry
  2. Tkinter StringVar Método para definir o conteúdo do Tkinter Entry Widget

Temos dois métodos para definir ou alterar o texto do widget Tkinter Entry clicando em um botão,

  1. Método Tkinter delete e insert.
  2. Tkinter StringVar Método

Método Tkinter delete e insert para definir o conteúdo do Entry

O widget Tkinter Entry não tem um método dedicado de set para definir o conteúdo da Entry. Ele precisa primeiro deletar o conteúdo existente e depois inserir o novo conteúdo se tivermos que alterar o conteúdo completamente.

Códigos de trabalho completos para definir o texto no método Entry com os 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 Conteúdo do Tkinter Entry_delete e método de inserção

textExample.delete(0,"end")

O método delete de Entry exclui o intervalo especificado de caracteres em Entry.

0 é o primeiro caractere e "end" é o último caractere do conteúdo no widget Entry. Portanto, delete(0, "end") apaga todo o conteúdo dentro da caixa Entry.

textExample.insert(0, text)

O método insert insere o texto na posição especificada. No código acima, ele insere o texto no início.

Tkinter StringVar Método para definir o conteúdo do Tkinter Entry Widget

Se o conteúdo do widget Tkinter Entry foi associado a um objeto StringVar, ele poderia mudar automaticamente o conteúdo do widget Tkinter Entry toda vez que o valor do StringVar fosse atualizado.

Códigos de trabalho completos para definir texto em Entry com 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 é um objeto StringVar e está associado ao conteúdo do texto, ou em outras palavras, a opção textvariable no widget Entry.

textEntry.set(text)

Se a textEntry for atualizada para ter um novo valor text, então os widgets cuja textvariable estão associados a ela serão automaticamente atualizados.

Artigo relacionado - Tkinter Entry

  • Como definir o texto padrão do Tkinter Entry Widget