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 linhano 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