Como definir o texto do widget de entrada do Tkinter com um botão
-
Método Tkinter
delete
einsert
para definir o conteúdo doEntry
-
Tkinter
StringVar
Método para definir o conteúdo do TkinterEntry
Widget
Temos dois métodos para definir ou alterar o texto do widget Tkinter Entry
clicando em um botão,
- Método Tkinter
delete
einsert
. - 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()
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 text
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.
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