Cómo obtener la entrada del cuadro de texto de Tkinter
- Código de ejemplo para obtener la entrada del Widget de texto de Tkinter
-
Código de ejemplo para obtener la entrada sin
línea nueva
al final del widget de texto de Tkinter
El widget de Tkinter Text tiene el método get()
para devolver la entrada de la caja de texto, que tiene el argumento de posición start
, y un argumento opcional end
para especificar la posición final del texto a ser obtenido.
get(start, end=None)
Si no se da end
, sólo se devolverá un carácter especificado en la posición start
.
Código de ejemplo para obtener la entrada del Widget de texto de 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")
La posición del primer carácter en el widget Text
es 1.0
, y podría ser referido como un número 1.0
o una cadena 1.0
.
"end"
significa que lee la entrada hasta el final de la caja de Text
. También podríamos usar tk.END
en lugar de la cadena "end"
aquí.
El pequeño problema es que si especificamos "end"
como la posición final del texto a devolver, incluye también el nuevo carácter \n
al final de la cadena de texto, como se puede ver en la animación anterior.
Podríamos cambiar el argumento "end"
del método get
por el "end-1c"
si no queremos la nueva línea en la entrada devuelta.
"end-1c"
significa que la posición está un carácter por delante de "end"
.
Código de ejemplo para obtener la entrada sin línea nueva
al final del widget de texto de Tkinter
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()
Aquí, también podríamos usar tk.END+"-1c"
además de "end-1c"
para eliminar el último carácter - \n
, porque tk.END = "end"
, por lo tanto tk.END+"-1c"
es 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