Change the color of certain words in the tkinter text widget - GeeksforGeeks

01 Aug, 2020
Python has various options for Graphical User Interface (GUI) development. One of the options is Tkinter. Tkinter and Python together provide a faster way for GUI development. The Tk GUI toolkit provides an object-oriented interface.
For creating GUI applications using Tkinter we have to follow a few steps –
Import Tkinter module.
Create the main window.
Add various widgets to the GUI application as per requirements.
Main event loop for every trigger by the user for performing specific actions.
Text widgets have advanced options for editing a text with multiple lines and format the display settings of that text example font, text color, background color. We can also use tabs and marks for locating and editing sections of data. We can also use images in the text and insert borders as well. And everything can be formatted as per the requirements. 
Syntax : Text ( master, option, ... )
Parameters : master represents parent window and option represents various widget options. They can be given as key-value pairs separated by commas.
Return : Return a Text object.  
Example 1 : In first example we will add a tag to a section of text by specifying the indices and highlight the selected text. Here, we are using tag_add and tag_config. 
Python3
# import all functions from the tkinterfrom 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 areatext.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 highlightedtext.tag_add("start", "2.8", "1.13")  #configuring a tag called starttext.tag_config("start", background="black",                 foreground="red")  # start the GUIroot.mainloop()
Output :  
Example 2 : In this example, user can highlight text as per their wish by selecting the text to be highlighted. Here, we are using tag_configure and tag_add.  
Python3
# import all functions from the tkinter   import tkinter as tkfrom tkinter.font import Font  # create a Pad classclass 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')  # functiondef 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 codeif __name__ == "__main__":      # function calling    demo()
Output :
Before selecting the text and hitting the highlight button :
After selecting the text and hitting the highlight button :
 
Python-tkinter
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to Install PIP on Windows ?
How to drop one or multiple columns in Pandas Dataframe
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Python | Pandas dataframe.groupby()
Defaultdict in Python
Python | Get unique values from a list
Python Classes and Objects
Python | os.path.join() method
Create a directory in Python