Python 3 - Texto de Tkinter
Los widgets de texto brindan capacidades avanzadas que le permiten editar un texto de varias líneas y formatear la forma en que debe mostrarse, como cambiar su color y fuente.
También puede usar estructuras elegantes como pestañas y marcas para ubicar secciones específicas del texto y aplicar cambios a esas áreas. Además, puede incrustar ventanas e imágenes en el texto porque este widget fue diseñado para manejar texto sin formato y con formato.
Sintaxis
Aquí está la sintaxis simple para crear este widget:
w = Text ( master, option, ... )
Parámetros
master - Esto representa la ventana principal.
options- Aquí está la lista de opciones más utilizadas para este widget. Estas opciones se pueden utilizar como pares clave-valor separados por comas.
No Señor. | Opción y descripción |
---|---|
1 | bg El color de fondo predeterminado del widget de texto. |
2 | bd El ancho del borde alrededor del widget de texto. El valor predeterminado es 2 píxeles. |
3 | cursor El cursor que aparecerá cuando el mouse esté sobre el widget de texto. |
4 | exportselection Normalmente, el texto seleccionado dentro de un widget de texto se exporta para ser la selección en el administrador de ventanas. Establezca exportselection = 0 si no desea ese comportamiento. |
5 | font La fuente predeterminada para el texto insertado en el widget. |
6 | fg El color utilizado para el texto (y mapas de bits) dentro del widget. Puede cambiar el color de las regiones etiquetadas; esta opción es solo la predeterminada. |
7 | height La altura del widget en líneas (¡no en píxeles!), Medida de acuerdo con el tamaño de fuente actual. |
8 | highlightbackground El color del resaltado del foco cuando el widget de texto no tiene foco. |
9 | highlightcolor El color del resaltado del foco cuando el widget de texto tiene el foco. |
10 | highlightthickness El grosor del resaltado de enfoque. El valor predeterminado es 1. Establezca el grosor de resaltado = 0 para suprimir la visualización del resaltado de enfoque. |
11 | insertbackground El color del cursor de inserción. El valor predeterminado es negro. |
12 | insertborderwidth Tamaño del borde 3-D alrededor del cursor de inserción. El valor predeterminado es 0. |
13 | insertofftime La cantidad de milisegundos que el cursor de inserción está apagado durante su ciclo de parpadeo. Establezca esta opción en cero para suprimir el parpadeo. El valor predeterminado es 300. |
14 | insertontime El número de milisegundos en el que se encuentra el cursor de inserción durante su ciclo de parpadeo. El valor predeterminado es 600. |
15 | insertwidth Ancho del cursor de inserción (su altura está determinada por el elemento más alto en su línea). El valor predeterminado es 2 píxeles. |
dieciséis | padx El tamaño del relleno interno agregado a la izquierda y derecha del área de texto. El valor predeterminado es un píxel. |
17 | pady El tamaño del relleno interno agregado arriba y debajo del área de texto. El valor predeterminado es un píxel. |
18 | relief La apariencia tridimensional del widget de texto. El valor predeterminado es alivio = HUNDIDO. |
19 | selectbackground El color de fondo que se utilizará para mostrar el texto seleccionado. |
20 | selectborderwidth El ancho del borde que se utilizará alrededor del texto seleccionado. |
21 | spacing1 Esta opción especifica cuánto espacio vertical adicional se coloca encima de cada línea de texto. Si una línea se ajusta, este espacio se agrega solo antes de la primera línea que ocupa en la pantalla. El valor predeterminado es 0. |
22 | spacing2 Esta opción especifica cuánto espacio vertical adicional agregar entre las líneas de texto mostradas cuando se ajusta una línea lógica. El valor predeterminado es 0. |
23 | spacing3 Esta opción especifica cuánto espacio vertical adicional se agrega debajo de cada línea de texto. Si una línea se ajusta, este espacio se agrega solo después de la última línea que ocupa en la pantalla. El valor predeterminado es 0. |
24 | state Normalmente, los widgets de texto responden a eventos de teclado y mouse; establezca state = NORMAL para obtener este comportamiento. Si establece state = DISABLED, el widget de texto no responderá y tampoco podrá modificar su contenido mediante programación. |
25 | tabs Esta opción controla cómo los caracteres de tabulación colocan el texto. |
26 | width El ancho del widget en caracteres (¡no en píxeles!), Medido según el tamaño de fuente actual. |
27 | wrap Esta opción controla la visualización de líneas que son demasiado anchas. Establezca wrap = WORD y romperá la línea después de la última palabra que quepa. Con el comportamiento predeterminado, wrap = CHAR, cualquier línea que sea demasiado larga se romperá en cualquier carácter. |
28 | xscrollcommand Para hacer que el widget de texto se pueda desplazar horizontalmente, establezca esta opción en el método set () de la barra de desplazamiento horizontal. |
29 | yscrollcommand Para hacer que el widget de texto se pueda desplazar verticalmente, establezca esta opción en el método set () de la barra de desplazamiento vertical. |
Métodos
Los objetos de texto tienen estos métodos:
No Señor. | Método y descripción |
---|---|
1 | delete(startindex [,endindex]) Este método elimina un carácter específico o un rango de texto. |
2 | get(startindex [,endindex]) Este método devuelve un carácter específico o un rango de texto. |
3 | index(index) Devuelve el valor absoluto de un índice basado en el índice dado. |
4 | insert(index [,string]...) Este método inserta cadenas en la ubicación de índice especificada. |
5 | see(index) Este método devuelve verdadero si el texto ubicado en la posición del índice es visible. |
Los widgets de texto admiten tres estructuras auxiliares distintas: marcas, pestañas e índices:
Las marcas se utilizan para marcar posiciones entre dos caracteres dentro de un texto determinado. Disponemos de los siguientes métodos para el manejo de marcas:
No Señor. | Método y descripción |
---|---|
1 | index(mark) Devuelve la ubicación de línea y columna de una marca específica. |
2 | mark_gravity(mark [,gravity]) Devuelve la gravedad de la marca dada. Si se proporciona el segundo argumento, la gravedad se establece para la nota dada. |
3 | mark_names() Devuelve todas las marcas del widget de texto. |
4 | mark_set(mark, index) Informa una nueva posición a la marca dada. |
5 | mark_unset(mark) Elimina la marca dada del widget de Texto. |
Las etiquetas se utilizan para asociar nombres a regiones de texto, lo que facilita la tarea de modificar la configuración de visualización de áreas de texto específicas. Las etiquetas también se utilizan para vincular devoluciones de llamada de eventos a rangos de texto específicos.
Los siguientes son los métodos disponibles para manejar pestañas:
No Señor. | Método y descripción |
---|---|
1 | tag_add(tagname, startindex[,endindex] ...) Este método etiqueta la posición definida por startindex o un rango delimitado por las posiciones startindex y endindex. |
2 | tag_config Puede utilizar este método para configurar las propiedades de la etiqueta, que incluyen, justificar (centro, izquierda o derecha), pestañas (esta propiedad tiene la misma funcionalidad que la propiedad de las pestañas del widget de texto) y subrayado (utilizado para subrayar el texto etiquetado) . |
3 | tag_delete(tagname) Este método se utiliza para eliminar y eliminar una etiqueta determinada. |
4 | tag_remove(tagname [,startindex[.endindex]] ...) Después de aplicar este método, la etiqueta dada se elimina del área proporcionada sin eliminar la definición de etiqueta real. |
Ejemplo
Pruebe el siguiente ejemplo usted mismo:
# !/usr/bin/python3
from tkinter import *
root = Tk()
text = Text(root)
text.insert(INSERT, "Hello.....")
text.insert(END, "Bye Bye.....")
text.pack()
text.tag_add("here", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("here", background = "yellow", foreground = "blue")
text.tag_config("start", background = "black", foreground = "green")
root.mainloop()
Resultado
Cuando se ejecuta el código anterior, produce el siguiente resultado: