Open In App

Build a basic Text Editor using Tkinter in Python

Last Updated : 29 Dec, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Tkinter is a Python Package for creating GUI applications. Python has a lot of GUI frameworks, but this is the only framework that’s built into the Python standard library. It has several strengths; it’s cross-platform, so the same code works on Windows, macOS, and Linux. It is lightweight and relatively painless to use compared to other frameworks. This makes it a compelling choice for building GUI applications in Python, especially for applications where a modern shine is unnecessary, and the top priority is to build something that’s functional and cross-platform quickly.  

Let’s start quickly working with Tkinter  

Let’s Understand the Basics

      Firstly Tkinter is a module that is available in most IDE’s. So let’s break apart the beginning into points:

  1. Importing the Tkinter module.
  2. Creating a window in which the program executes. It is also known as the “root window”.
  3. Finally, using a function to execute the code which is known as “mainloop()”.    

Python3




# import all things from tkinter
from tkinter import *
    
# create root window 
root = Tk() 
    
  
# widgets,buttons,etc here
root.mainloop()


Output:

“*” implements all features of Tkinter

   This is how you could build a window in just three simple lines!

Note: Please do not spell “tkinter” as with a capital “T”, as this would not import the module and you would most probably encounter an error message!!!

     

Designing Our GUI Window

     This is a simple step! So we will basically use these mains functions:-

  1. geometry(“AAAxBBB”)
  2. minsize(height = AAA, width = BBB)
  3. maxsize(height = AAA, width = BBB)
  4. title(“DESIRED TITLE”)

Python3




from tkinter import *
  
# root
root = Tk()
  
# design
root.geometry("300x300")
root.minsize(height=560)
root.title("TKINter Program")
  
# execute
root.mainloop()


Output:

Create a Basic Notepad

Notepad is one thing used commonly by every person who owns a desktop. It a shortcut tool to save important information in small notes, for temporary purposes, etc. Let’s make our own notepad using Tkinter.

First, let’s type the basic code that we discussed earlier.

Python3




from tkinter import *
  
# create root window
root = Tk()
  
# design
root.geometry("300x300")
root.minsize(height=560)
root.title("Notepad")
  
# running the program
root.mainloop()


Okay so let’s think we will need a text function and a scroll bar to scroll through the text if it exceeds the dimensions of the window. Also, we learn about grid() and pack(). They are used to pack the functions in the window, without them the buttons, text, frames would not display in the window.

Note: We can either use .grid() or .pack() for our program. However, using both in the same file would not work since Tkinter does not accept this, you obtain an error. You could use .pack() for efficient packing

Now let’s add a scrollbar: We shall invent a variable known as scrollbar and equate it to Scrollbar(root). It is important to add root into the brackets to integrate the scrollbar function into main root loop.

Now let’s pack the scrollbar: We call the variable name and append it with “.pack(). We use side = RIGHT so that the scrollbar is added to the right of the window and fill = Y or fill = “y” (Use anyone) so that it fill across the whole y-axis.

Python3




from tkinter import *
  
root = Tk()
root.geometry("300x300")
root.minsize(height=560,
             width=560)
root.title("Notepad")
  
  
# implementing scrollbar functionality
scrollbar = Scrollbar(root)
  
  
# packing the scrollbar function
scrollbar.pack(side=RIGHT,
               fill=Y)
  
root.mainloop()


Output:

Now let’s add the text: We will use the text function and pack it. Also, we will configure the scrollbar for functionality. We will add a command called “yscrollcommand” which will connect the text and scrollbar function together and it would add scrolling option for the text.

Python3




from tkinter import *
  
root = Tk()
root.geometry("350x250")
root.title("Sticky Notes")
root.minsize(height=250, width=350)
root.maxsize(height=250, width=350)
  
  
# adding scrollbar
scrollbar = Scrollbar(root)
  
# packing scrollbar
scrollbar.pack(side=RIGHT,
               fill=Y)
  
  
text_info = Text(root,
                 yscrollcommand=scrollbar.set)
text_info.pack(fill=BOTH)
  
# configuring the scrollbar
scrollbar.config(command=text_info.yview)
  
root.mainloop()


 Output:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads