Making a Notepad using Tkinter ~PYTHON

 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

Popular Posts