to create a simple notepad in Python using Tkinter. This notepad GUI will consist of various menu like file and edit, using which all functionalities like saving the file, opening a file, editing, cut and paste can be done.
Now for creating this notepad, Python 3 and Tkinter should already be installed in your system. You can download suitable python package as per system requirement. After you have successfully installed python you need to install Tkinter (a Python’s GUI package).
Use this command to install Tkinter :
pip install python-tk
Importing Tkinter :
filter_none
edit
play_arrow
brightness_4
import tkinter
import os
from tkinter import *
# To get the space above for message
from tkinter.messagebox import *
# To get the dialog box to open when required
from tkinter.filedialog import *
Note : messagebox is used to write the message in the white box called notepad and filedialog is used for the dialog box to appear when you are opening file from anywhere in your system or saving your file in a particular position or place.
Adding Menu :
filter_none
edit
play_arrow
brightness_4
# Add controls(widget)
self.__thisTextArea.grid(sticky = N + E + S + W)
# To open new file
self.__thisFileMenu.add_command(label = "New",
command = self.__newFile)
# To open a already existing file
self.__thisFileMenu.add_command(label = "Open",
command = self.__openFile)
# To save current file
self.__thisFileMenu.add_command(label = "Save",
command = self.__saveFile)
# To create a line in the dialog
self.__thisFileMenu.add_separator()
# To terminate
self.__thisFileMenu.add_command(label = "Exit",
command = self.__quitApplication)
self.__thisMenuBar.add_cascade(label = "File",
menu = self.__thisFileMenu)
# To give a feature of cut
self.__thisEditMenu.add_command(label = "Cut",
command = self.__cut)
# To give a feature of copy
self.__thisEditMenu.add_command(label = "Copy",
command = self.__copy)
# To give a feature of paste
self.__thisEditMenu.add_command(label = "Paste",
command = self.__paste)
# To give a feature of editing
self.__thisMenuBar.add_cascade(label = "Edit",
menu = self.__thisEditMenu)
# To create a feature of description of the notepad
self.__thisHelpMenu.add_command(label = "About Notepad",
command = self.__showAbout)
self.__thisMenuBar.add_cascade(label = "Help",
menu = self.__thisHelpMenu)
self.__root.config(menu = self.__thisMenuBar)
self.__thisScrollBar.pack(side = RIGHT, fill = Y)
# Scrollbar will adjust automatically
# according to the content
self.__thisScrollBar.config(command = self.__thisTextArea.yview)
self.__thisTextArea.config(yscrollcommand = self.__thisScrollBar.set)
With this code we will add the menu in the windows of our notepad and will add the things like copy, paste, save etc, to it.
Explanation: