Como obter a entrada da caixa de texto Tkinter
- Exemplo de código para obter a entrada do widget de texto Tkinter
-
Exemplo de código para buscar a entrada sem a
nova linha
no final do Tkinter Text Widget
O widget Tkinter Text tem o método get()
para retornar a entrada da caixa de texto, que tem o argumento de posição start
, e um argumento opcional end
para especificar a posição final do texto a ser buscado.
get(start, end=None)
Se não for dado end
, somente um caractere especificado na posição start
será retornado.
Exemplo de código para obter a entrada do widget de texto Tkinter
import tkinter as tk
root = tk.Tk()
root.geometry("400x240")
def getTextInput():
result = textExample.get("1.0", "end")
print(result)
textExample = tk.Text(root, height=10)
textExample.pack()
btnRead = tk.Button(root, height=1, width=10, text="Read", command=getTextInput)
btnRead.pack()
root.mainloop()
result = textExample.get("1.0", "end")
A posição do primeiro caractere no widget Text
é 1.0
, e poderia ser referido como um número 1.0
ou uma string "1.0"
.
"end"
significa que ele lê a entrada até o final da caixa Texto
. Poderíamos também utilizar tk.END
em vez da string "end"
aqui.
A pequena questão se especificarmos "end"
como a posição final do texto a ser devolvido, inclui também o novo caractere de linha \n
no final da string de texto, como você pode ver na animação acima.
Poderíamos mudar o argumento "end"
do método get
para ser o "end-1c"
se não quisermos a nova linha na entrada retornada.
"end-1c"
significa que a posição é um caractere à frente do "end"
.
Exemplo de código para buscar a entrada sem a nova linha
no final do Tkinter Text Widget
import tkinter as tk
root = tk.Tk()
root.geometry("400x240")
def getTextInput():
result = textExample.get(1.0, tk.END + "-1c")
print(result)
textExample = tk.Text(root, height=10)
textExample.pack()
btnRead = tk.Button(root, height=1, width=10, text="Read", command=getTextInput)
btnRead.pack()
root.mainloop()
Aqui, também poderíamos utilizar tk.END+"-1c"
além de "end-1c"
para eliminar o último caractere - \n
, porque tk.END = "end"
, portanto tk.END+"-1c"
é igual a "end"+"-1c"="end-1c"
.
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