from tkinter import *
from tkinter.filedialog import askopenfilename, asksaveasfilename
import os
import tkinter.messagebox as tmsg
def newfile():
global file
ak.title("Untitled - Notepad")
file =None
txt.delete(1.0,END)
def openfile():
global file
file = askopenfilename(defaultextension=".txt"
, filetypes=[("All Files","*.*"),
("Text Documents","*.txt")])
if file == "":
file = None
else:
ak.title(os.path.basename(file)+" - Notepad")
txt.delete(1.0,END)
f = open(file,"r")
txt.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 Documents","*.txt")])
if file =="":
file = None
else:
f = open(file, "w")
f.write(txt.get(1.0,END))
f.close()
ak.title(os.path.basename(file)+" - Notepad")
print("File saved")
else:
f = open(file, "w")
f.write(txt.get(1.0,END))
f.close()
def cut():
txt.event_generate(("<<Cut>>"))
def copy():
txt.event_generate(("<<Copy>>"))
def paste():
txt.event_generate(("<<Paste>>"))
def fonts():
fon = Tk()
fon.geometry("300x300")
fon.title("Font Family")
l = Listbox(fon,font="lucida 10")
l.pack(side=LEFT,anchor="nw",padx=30,pady=30)
l.insert(END,"1. Lucida")
l.insert(END,"2. System")
l.insert(END,"3. Courier")
l.insert(END,"4. Cursive")
l.insert(END,"5. Terminal")
l.insert(END,"6. Roman")
l.insert(END,"7. Rockwell")
l.insert(END,"8. Perpetua")
l.insert(END,"9. Script")
l.insert(END,"10. Berlin Sans FB")
Button(fon,text="Style",command=save2).pack()
def save():
for item in l.curselection():
if item==1:
txt.config(font=(f"Lucida"))
elif item==2:
txt.config(font=("System"))
elif item==3:
txt.config(font=("Courier"))
elif item==4:
txt.config(font=("Cursive"))
elif item==5:
txt.config(font=("Terminal"))
elif item==6:
txt.config(font=("Roman"))
elif item==7:
txt.config(font=("Rockwell"))
elif item==8:
txt.config(font=("Perpetua"))
elif item==9:
txt.config(font=("Script"))
elif item==10:
txt.config(font=("Berlin Sans FB"))
Button(fon,text="Size",command=save,padx=20,pady=20,font="lucida 15").pack(side=LEFT)
def tellus():
tmsg.showinfo("Info","This is Notepad version 1.0\n Which is developed by AK")
def feedback():
v = tmsg.askquestion("Was your experience Good?","Was your experience Good?")
if v == "yes":
msg = "Great. Rate us on Playstore please"
else:
def exit1():
tmsg.showinfo("Accepted","Thanks for Feedback, We will try to solve this")
q1.destroy()
msg = "Tell us your problem"
tmsg.showinfo("Experience",msg)
q1 = Tk()
q1.title("Tell Us")
q1.geometry("300x300")
q = StringVar()
Label(q1,text="Tell Us Your Problem").pack(pady=20)
query = Entry(q1,textvariable= q,font="lucida 10",width=50).pack()
Button(q1,text="Submit",command=exit1).pack(padx=6,pady=6)
def wrap():
pass
ak = Tk()
ak.geometry("600x600")
ak.title("Untitled - Notepad")
ak.iconbitmap("mainicon.ico")
txt = Text(ak,font="20",padx=5,pady=5)
file = None
txt.pack(expand=True, fill=BOTH)
# Menu bar
menubar = Menu(ak)
#file
filem = Menu(menubar,tearoff=0)
filem.add_command(label="New",command=newfile)
filem.add_command(label="Open",command=openfile)
filem.add_command(label="Save",command=savefile)
# filem.add_separator() # this will separat from other
filem.add_command(label="Exit",command=quit)
menubar.add_cascade(label="File",menu=filem)
#edit
editm = Menu(menubar,tearoff=0)
editm.add_command(label="Cut",command=cut)
editm.add_command(label="Copy",command=copy)
editm.add_command(label="Past",command=paste)
menubar.add_cascade(label="Edit",menu=editm)
#Format
form = Menu(menubar,tearoff=0)
# form.add_command(label="Font",command=font)
form.add_command(label="Font",command=fonts)
form.add_command(label="Word Wrap",command=wrap)
menubar.add_cascade(label="Format",menu=form)
ak.config(menu=menubar)
#View
view = Menu(menubar, tearoff=0)
view.add_command(label="Zoom")
menubar.add_cascade(label="View",menu=view)
ak.config(menu=menubar)
#About
about = Menu(menubar, tearoff=0)
about.add_command(label="Send Feedback",command=feedback)
about.add_separator()
about.add_command(label="About Notepad",command=tellus)
menubar.add_cascade(label="Help",menu=about)
ak.config(menu=menubar)
# Scrollbar
scroll = Scrollbar(txt)
scroll.pack(side=RIGHT,fill=Y)
scroll.config(command=txt.yview)
txt.config(yscrollcommand=scroll.set)
ak.mainloop()
Comments
Post a Comment