You are on page 1of 2

from tkinter import *

from tkinter import filedialog

import self as self

root = Tk()

class text_editor:

current_open_file = "no_file"
def open_file(self):
result = filedialog.askopenfile(initialdir="/",title="Select
File",filetypes=(("text files",".txt"),("all files","*.*")))
if (result != None):
self.text_area.delete(1.0,END)
for line in result:
self.text_area.insert(END,line)
self.current_open_file = result.name
result.close()

def save_as_file(self):
file = filedialog.asksaveasfile(mode="w", defaultextension=".txt")
if file is None:
return
text2save = self.text_area.get(1.0,END)
self.current_open_file = file.name
file.write(text2save)
file.close()

def save_file(self):
if self.current_open_file == "no_file":
self.save_as_file()
else:
file = open(self.current_open_file, "w")
file.write(self.text_area.get(1.0,END))

def new_file(self,event):
self.text_area.delete(1.0,END)
self.current_open_file = "no_file"

def copy_text(self):
self.text_area.clipboard_clear()
self.text_area.clipboard_append(self.text_area.selection_get())

def cut_text(self):
self.copy_text()
self.text_area.delete("sel.first","sel.last")

def paste_text(self):
self.text_area.insert(INSERT, self.text_area.clipboard_get())

def __init__(self,master):
self.master = master
master.title("Text Editor")
self.text_area = Text(undo = True)
self.text_area.pack(fill=BOTH,expand=1)
self.main_menu=Menu()
self.master.config(menu=self.main_menu)
self.master.bind("<Return>", self.new_file)

#creating file menu


self.file_menu = Menu(self.main_menu,tearoff=False)
self.main_menu.add_cascade(label="File", menu=self.file_menu)
self.file_menu.add_command(label="New", command=self.new_file)
self.file_menu.add_command(label="Open", command=self.open_file)
self.file_menu.add_separator()
self.file_menu.add_command(label="Save ", command=self.save_file)
self.file_menu.add_command(label="Save As", command=self.save_as_file)
self.file_menu.add_separator()
self.file_menu.add_command(label="Exit",command= master.quit)

#creating edit menu


self.edit_menu = Menu(self.main_menu, tearoff=False)
self.main_menu.add_cascade(label="Edit",menu=self.edit_menu)
self.edit_menu.add_command(label="Copy",command=self.copy_text)
self.edit_menu.add_command(label="Cut",command=self.cut_text)
self.edit_menu.add_command(label="Paste",command=self.paste_text)
self.edit_menu.add_separator()
self.edit_menu.add_command(label="Undo",command=self.text_area.edit_undo)
self.edit_menu.add_command(label="Redo",command=self.text_area.edit_redo)
te = text_editor(root)
root.mainloop()

You might also like