Cambiar el color de ciertas palabras en el widget de texto tkinter

Python tiene varias opciones para el desarrollo de la interfaz gráfica de usuario (GUI). Una de las opciones es Tkinter . Juntos, Tkinter y Python proporcionan una forma más rápida para el desarrollo de GUI. El kit de herramientas Tk GUI proporciona una interfaz orientada a objetos.

Para crear aplicaciones GUI usando Tkinter, debemos seguir algunos pasos:

  • Importar módulo Tkinter.
  • Crea la ventana principal.
  • Agregue varios widgets a la aplicación GUI según los requisitos.
  • Bucle de evento principal para cada activador por parte del usuario para realizar acciones específicas.

Los widgets de texto tienen opciones avanzadas para editar un texto con varias líneas y dar formato a la configuración de visualización de ese texto, por ejemplo, fuente, color de texto, color de fondo. También podemos usar pestañas y marcas para ubicar y editar secciones de datos. También podemos usar imágenes en el texto e insertar bordes también. Y todo se puede formatear según los requisitos.
 

Sintaxis: Texto (maestro, opción, …)

Parámetros: el maestro representa la ventana principal y la opción representa varias opciones de widgets. Se pueden dar como pares clave-valor separados por comas.

Devolver: Devuelve un objeto de texto. 
 

Ejemplo 1: en el primer ejemplo, agregaremos una etiqueta a una sección de texto especificando los índices y resaltando el texto seleccionado. Aquí, estamos usando tag_add y tag_config.
 

Python3

# import all functions from the tkinter
from tkinter import *
  
# Create a GUI window  
root = Tk()
  
# Create a text area box   
# for filling or typing the information.
text = Text(root)
  
# insert given string in text area
text.insert(INSERT, "Hello, everyone!\n")
  
text.insert(END, "This is 2020.\n")
  
text.insert(END, "Pandemic has resulted 
             in economic slowdown worldwide")
  
text.pack(expand=1, fill=BOTH)
  
# add tag using indices for the
# part of text to be highlighted
text.tag_add("start", "2.8", "1.13")
  
#configuring a tag called start
text.tag_config("start", background="black",
                 foreground="red")
  
# start the GUI
root.mainloop()

Producción : 
 

Ejemplo 2: En este ejemplo, el usuario puede resaltar texto según su deseo seleccionando el texto que se resaltará. Aquí, estamos usando tag_configure y tag_add. 
 

Python3

# import all functions from the tkinter   
import tkinter as tk
from tkinter.font import Font
  
# create a Pad class
class Pad(tk.Frame):
  
    # constructor to add buttons and text to the window
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)
  
        self.toolbar = tk.Frame(self, bg="#eee")
        self.toolbar.pack(side="top", fill="x")
          
        # this will add Highlight button in the window
        self.bold_btn = tk.Button(self.toolbar, text="Highlight",
                                  command=self.highlight_text)
        self.bold_btn.pack(side="left")
  
        # this will add Clear button in the window
        self.clear_btn = tk.Button(self.toolbar, text="Clear",
                                   command=self.clear)
        self.clear_btn.pack(side="left")
  
        # adding the text 
        self.text = tk.Text(self)
        self.text.insert("end", "Pandemic has resulted in economic slowdown worldwide")
        self.text.focus()
        self.text.pack(fill="both", expand=True)
          
        #configuring a tag called start
        self.text.tag_configure("start", background="black", foreground="red")
  
    # method to highlight the selected text
    def highlight_text(self):
          
        # if no text is selected then tk.TclError exception occurs
        try:
            self.text.tag_add("start", "sel.first", "sel.last")        
        except tk.TclError:
            pass
  
    # method to clear all contents from text widget.
    def clear(self):
        self.text.tag_remove("start",  "1.0", 'end')
  
# function
def demo():
  
    # Create a GUI window 
    root = tk.Tk()
  
    # place Pad object in the root window
    Pad(root).pack(expand=1, fill="both")
  
    # start the GUI
    root.mainloop()
  
# Driver code
if __name__ == "__main__":
  
    # function calling
    demo()

Producción :

Antes de seleccionar el texto y presionar el botón de resaltar:

Después de seleccionar el texto y presionar el botón de resaltar:

Publicación traducida automáticamente

Artículo escrito por devanshigupta1304 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *