Hey Wassup Python Programmer. Here i have share you the code of Notepad.So Before Running this program Make sure you Have install tkinter module Using Command
Copy The code correctly Make Sure that you havent make any indenation or syntax error
Copy The code correctly Make Sure that you havent make any indenation or syntax error
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import tkinter | |
import os | |
from tkinter import * | |
from tkinter.messagebox import * | |
from tkinter.filedialog import * | |
class Notepad: | |
__root = Tk() | |
# default window width and height | |
__thisWidth = 300 | |
__thisHeight = 300 | |
__thisTextArea = Text(__root) | |
__thisMenuBar = Menu(__root) | |
__thisFileMenu = Menu(__thisMenuBar, tearoff=0) | |
__thisEditMenu = Menu(__thisMenuBar, tearoff=0) | |
__thisHelpMenu = Menu(__thisMenuBar, tearoff=0) | |
# To add scrollbar | |
__thisScrollBar = Scrollbar(__thisTextArea) | |
__file = None | |
def __init__(self,**kwargs): | |
# Set icon | |
try: | |
self.__root.wm_iconbitmap("Notepad.ico") | |
except: | |
pass | |
# Set window size (the default is 300x300) | |
try: | |
self.__thisWidth = kwargs['width'] | |
except KeyError: | |
pass | |
try: | |
self.__thisHeight = kwargs['height'] | |
except KeyError: | |
pass | |
# Set the window text | |
self.__root.title("Untitled - Notepad") | |
# Center the window | |
screenWidth = self.__root.winfo_screenwidth() | |
screenHeight = self.__root.winfo_screenheight() | |
# For left-alling | |
left = (screenWidth / 2) - (self.__thisWidth / 2) | |
# For right-allign | |
top = (screenHeight / 2) - (self.__thisHeight /2) | |
# For top and bottom | |
self.__root.geometry('%dx%d+%d+%d' % (self.__thisWidth, | |
self.__thisHeight, | |
left, top)) | |
# To make the textarea auto resizable | |
self.__root.grid_rowconfigure(0, weight=1) | |
self.__root.grid_columnconfigure(0, weight=1) | |
# 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() | |
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) | |
def __quitApplication(self): | |
self.__root.destroy() | |
# exit() | |
def __showAbout(self): | |
showinfo("Notepad","Mrinal Verma") | |
def __openFile(self): | |
self.__file = askopenfilename(defaultextension=".txt", | |
filetypes=[("All Files","*.*"), | |
("Text Documents","*.txt")]) | |
if self.__file == "": | |
# no file to open | |
self.__file = None | |
else: | |
# Try to open the file | |
# set the window title | |
self.__root.title(os.path.basename(self.__file) + " - Notepad") | |
self.__thisTextArea.delete(1.0,END) | |
file = open(self.__file,"r") | |
self.__thisTextArea.insert(1.0,file.read()) | |
file.close() | |
def __newFile(self): | |
self.__root.title("Untitled - Notepad") | |
self.__file = None | |
self.__thisTextArea.delete(1.0,END) | |
def __saveFile(self): | |
if self.__file == None: | |
# Save as new file | |
self.__file = asksaveasfilename(initialfile='Untitled.txt', | |
defaultextension=".txt", | |
filetypes=[("All Files","*.*"), | |
("Text Documents","*.txt")]) | |
if self.__file == "": | |
self.__file = None | |
else: | |
# Try to save the file | |
file = open(self.__file,"w") | |
file.write(self.__thisTextArea.get(1.0,END)) | |
file.close() | |
# Change the window title | |
self.__root.title(os.path.basename(self.__file) + " - Notepad") | |
else: | |
file = open(self.__file,"w") | |
file.write(self.__thisTextArea.get(1.0,END)) | |
file.close() | |
def __cut(self): | |
self.__thisTextArea.event_generate("<<Cut>>") | |
def __copy(self): | |
self.__thisTextArea.event_generate("<<Copy>>") | |
def __paste(self): | |
self.__thisTextArea.event_generate("<<Paste>>") | |
def run(self): | |
# Run main application | |
self.__root.mainloop() | |
# Run main application | |
notepad = Notepad(width=600,height=400) | |
notepad.run() |
0 Comments:
Post a Comment