CODE...
from tkinter import *
from tkinter.messagebox import showinfo
from tkinter.filedialog import askopenfilename, asksaveasfilename
import os
def newFile():
global file
root.title("Untitled - Notepad")
file = None
TextArea.delete(1.0, END)
def openFile():
global file
file = askopenfilename(defaultextension=".txt",filetypes=[("All Files","*.*"),("Text Document","*.*")])
if file == "":
file = None
else:
root.title(os.path.basename(file)+ " - Notepad")
TextArea.delete(1.0,END)
f = open(file, "r")
TextArea.insert(1.0,f.read())
f.close()
def saveFile():
global file
if file == None:
file = asksaveasfilename(initialfile="Untitled.txt",
defaultextension=".txt",filetypes=[("All Files","*.*"),
("Text Document","*.*")])
if file =="":
file=None
else:
#save a new file
f = open(file,"w")
f.write(TextArea.get(1.0,END))
f.close()
root.title(os.path.basename(file) +" - Notepad")
print("file save")
else:
#save the file
f = open(file, "w")
f.write(TextArea.get(1.0,END))
f.close()
print("file resaving")
def quitApp():
root.destroy()
def cutFile():
TextArea.event_generate("<<Cut>>")
def copyFile():
TextArea.event_generate("<<Copy>>")
def pasteFile():
TextArea.event_generate("<<Paste>>")
def about():
showinfo("Notepad", "Notepad Made By Faisal")
if __name__ == '__main__':
#basic tkinter setup
root = Tk()
root.title("Notepad")
root.geometry("600x550")
#add textarea
TextArea = Text(root, font="ComicSansMS 15 bold")
file = None
TextArea.pack(fill=BOTH,expand=TRUE)
#MENU-BAR(ALL)
MenuBar = Menu(root)
#fILE menu
FileMenu = Menu(MenuBar, tearoff=0)
FileMenu.add_command(label="New", command=newFile)
FileMenu.add_command(label="Open", command=openFile)
FileMenu.add_command(label="Save", command=saveFile)
FileMenu.add_separator()
FileMenu.add_command(label="Exit", command= quitApp)
MenuBar.add_cascade(label="File", menu=FileMenu)
#Edit MENU
EditMenu = Menu(MenuBar, tearoff=0)
EditMenu.add_command(label="Cut", command=cutFile)
EditMenu.add_command(label="Copy", command=copyFile)
EditMenu.add_command(label="Paste", command=pasteFile)
MenuBar.add_cascade(label="Edit", menu=EditMenu)
#Help MEnu
HelpMenu = Menu(MenuBar, tearoff=0)
HelpMenu.add_command(label="About Notepad", command=about)
MenuBar.add_cascade(label="Help", menu=HelpMenu)
root.config(menu=MenuBar)
#adding a scrollbar
scroll = Scrollbar(TextArea)
scroll.pack(side=RIGHT, fill=Y)
scroll.config(command=TextArea.yview)
TextArea.config(yscrollcommand=scroll.set)
root.mainloop()
Comments
Post a Comment