Para obtener la entrada de Tkinter desde el cuadro de texto, debe agregar algunos atributos más a la .get()
función normal . Si tenemos un cuadro de texto myText_Box
, este es el método para recuperar su entrada.
def retrieve_input():
input = self.myText_Box.get("1.0",END)
La primera parte "1.0"
significa que la entrada debe leerse desde la línea uno, carácter cero (es decir, el primer carácter). END
es una constante importada que se establece en la cadena "end"
. La END
parte significa leer hasta llegar al final del cuadro de texto. El único problema con esto es que en realidad agrega una nueva línea a nuestra entrada. Entonces, para solucionarlo, debemos cambiar END
a end-1c
(Gracias Bryan Oakley ) El -1c
elimina 1 carácter, mientras -2c
que significaría eliminar dos caracteres, y así sucesivamente.
def retrieve_input():
input = self.myText_Box.get("1.0",'end-1c')
"end-1c"
oEND+"1c"
, de lo contrario, obtendrá la nueva línea adicional que el widget de texto siempre agrega..get('1.0', 'end-1c')
end+1c
tuviera que escribir, ¿agregaría una nueva línea al código? Por último, Bryan y Honest Abe, muchas gracias por ayudarme con mis sencillas preguntas sobre Tkinter y Python. Realmente me ha ayudado a obtener una comprensión más profunda del idioma y siempre ha sido cortés, rápido y, lo mejor de todo, conocedor. ¡Estoy seguro de que sus consejos me ayudarán a medida que avance hacia la escuela secundaria y más allá!'end-1c'
son necesarias para que sea una sola cadena.'end'
es un alias para el índice después del último carácter. Entonces, si'end'
fuera'3.8'
entonces'end-1c'
sería'3.7'
. Quiero recomendar nuevamente revisar: Índices de widgets de texto .Así es como lo hice con Python 3.5.2:
con eso, cuando escribí "bla bla" en el widget de texto y presioné el botón, todo lo que escribí se imprimió. Entonces creo que esa es la respuesta para almacenar la entrada del usuario desde el widget de texto a la variable.
fuente
Para obtener la entrada de Tkinter desde el cuadro de texto en Python 3, el programa completo de nivel de estudiante que utilizo es el siguiente:
fuente
Para obtener la cadena en un
Text
widget, simplemente se puede usar elget
método definido para elText
cual acepta de 1 a 2 argumentos comostart
yend
posiciones de caracterestext_widget_object.get(start, end=None)
,. Si solostart
se pasa yend
no se pasa, devuelve solo el carácter individual posicionado enstart
, si tambiénend
se pasa, devuelve todos los caracteres entre posicionesstart
yend
como cadena.También hay cadenas especiales, que son variables para el Tk subyacente. Uno de ellos sería
"end"
otk.END
que representa la posición variable del último carácter en elText
widget. Un ejemplo sería devolver todo el texto en el widget, context_widget_object.get('1.0', 'end')
otext_widget_object.get('1.0', 'end-1c')
si no desea el último carácter de nueva línea.Manifestación
Vea la demostración a continuación que selecciona los caracteres entre las posiciones dadas con controles deslizantes:
fuente
Creo que esta es una mejor manera
Al presionar el botón, se imprime el valor en el campo de texto. Pero asegúrese de importar el ttk por separado.
El código completo para una aplicación básica es-
fuente
Me enfrenté al problema de obtener el texto completo del widget de texto y la siguiente solución funcionó para mí:
Donde 1.0 significa primera línea, el carácter cero (es decir, antes de la primera) es la posición inicial y FIN es la posición final.
Gracias a Alan Gauld en este enlace
fuente
Digamos que tienes un
Text
widget llamadomy_text_widget
.Para obtener información del
my_text_widget
, puede usar laget
función.Supongamos que ha importado
tkinter
. Definamosmy_text_widget
primero, hagámoslo simplemente un widget de texto simple.Para obtener información de un
text
widget, debe usar laget
función, ambos,text
y losentry
widgets la tienen.La razón por la que lo guardamos en una variable es para usarlo en el proceso posterior, por ejemplo, probando cuál es la entrada.
fuente
Text
widgetget
requiere al menos un argumento.