Python/Interfaz gráfica con Tkinter/Métodos del cuadro de texto
Métodos
editarComo habíamos comentando cuando estábamos viendo el widget Entry, dijimos que existían métodos que nos permitían trabajar con este, los cuales iremos viendo a continuación.
- delete(INICIO, FIN)
Elimina uno o mas elementos del campo de texto, este método recibe dos argumentos uno es el inicio desde donde se desea eliminar el contenido y el segundo argumento es hasta donde deseamos eliminar, al igual que en Python debemos comenzar el índice contando desde 0. Por ejemplo para eliminar de la siguiente cadena
'0123456789'
de los caracteres del 0 al 5, los índices que le deberíamos de dar serian (0, 6). Esto no es nada nuevo a lo ya venimos viendo en este lenguaje de programación.
También podemos pasarle un solo argumento para borrar un solo carácter, veamos estos dos a través de unos ejemplos.
Con un solo argumento:
>>> import Tkinter >>> root = Tkinter.Tk() >>> campo_de_texto = Tkinter.Entry(root) >>> campo_de_texto.pack() >>> campo_de_texto.get() 'CodigoPython.com.ar' >>> campo_de_texto.delete(0) >>> campo_de_texto.get() 'odigoPython.com.ar' >>>
Con dos argumentos:
>>> import Tkinter >>> root = Tkinter.Tk() >>> campo_de_texto = Tkinter.Entry(root) >>> campo_de_texto.pack() >>> campo_de_texto.get() 'CodigoPython.com.ar' >>> campo_de_texto.delete(12, 19) >>> campo_de_texto.get() 'CodigoPython' >>>
Otra opción que tenemos es borrar desde un inicio fijado por nosotros hasta el final del texto disponible en el campo de texto gracias a un índice que nos da Tkinter que es 'END', con este podemos de la siguiente forma borrar desde el inicio hasta el final sin necesitar conocer cuantos caracteres componen el texto contenido en el widget
campo_de_texto.delete(0, END)
Aunque no es necesario comenzar desde el inicio también podemos borrar desde el quinto carácter hasta el ultimo
campo_de_texto.delete(5, END)
También podemos utilizar los índices ya vistos en la sección 'Índices'.
- get()
Obtiene el contenido del campo de texto. Algo muy necesario para nosotros es poder obtener el texto contenido dentro del campo de texto, para conseguir esto podemos hacernos del método 'get' que nos lo permitirá, este nos retornara el texto como una cadena. Veamos con un ejemplo escribiendo cualquier texto y usamos el método 'get'
>>> import Tkinter >>> root = Tkinter.Tk() >>> campo_de_texto = Tkinter.Entry(root) >>> campo_de_texto.pack() >>> # Ahora deben escribir el texto >>> # en el campo de texto >>> campo_de_texto.get() 'No se olviden de visitar http://www.codigopython.com.ar/' >>>
El valor que nos retorne siempre sera como una cadena y es muy simple comprobarlo, coloquemos un texto en nuestro campo de texto, en mi caso escribiré la cadena 'Aguante Python' y almacenemos su valor en una variable para luego analizarla con la función 'type' de Python
>>> var = campo_de_texto.get() >>> var 'Aguante Python' >>> type(var) <type 'str'> >>>
Si lo hacemos usando solo números en el campo de texto obtendremos el mismo resultado
>>> var = campo_de_texto.get() >>> var '0123456789' >>> type(var) <type 'str'> >>>
Mas adelante veremos como validar nuestros campos de textos.
- icursor(INDICE)
Nos permite mover el cursor hasta la posición indicada, cuando vimos acerca de los índices vimos a INSERT y mencionamos a 'icursor'. Este método nos permite cambiar a donde deseamos que cambie la posición del cursor y junto a INSERT podemos llevar nuestra aplicación a otro nivel de interacción con el usuario.
Un ejemplo simple seria el siguiente
>>> entrada.icursor(0)
>>> entrada.icursor(END)
Recuerden de haber escrito un texto en el campo y que tenemos a nuestra disposición los índices para indicar la posición del cursor.
- index(INDICE)
- insert(INDICE, CADENA)
Permite la inserción de texto. Supongamos que necesitamos insertar una cadena, un numero o un carácter en un campo de texto, para conseguirlo es tan simple como llamar a este método pasándole dos argumentos como parámetros. De los dos argumentos mencionados uno es el índice de donde deseamos insertar el texto y el segundo es la cadena o carácter.
En este ejemplo insertaremos la cadena "GNU/" desde el índice 0
>>> import Tkinter >>> root = Tkinter.Tk() >>> campo_de_texto = Tkinter.Entry(root) >>> campo_de_texto.pack() >>> campo_de_texto.get() >>> campo_de_texto.insert(0, "GNU/") >>> campo_de_texto.get() 'GNU/Linux' >>>
- scan
- selection
- xview
Con lo que vimos ahora estamos mas cerca de dominar los cuadros de texto, aunque no hay que apresurarnos que nos queda mucho camino por delante.