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.
# 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() |
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.
# 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()
|
Output :
Before selecting the text and hitting the highlight button :
After selecting the text and hitting the highlight button :