Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import Tk, scrolledtext, Menu, filedialog, END, messagebox, simpledialog
- from tkinter import *
- import os
- import sys
- import fileinput
- def newFile():
- global is_saved
- if is_saved == len(textArea.get('1.0', END+'-1c')):
- textArea.delete('1.0', END)
- main_window.title("New File")
- is_saved = 0
- else:
- FileNotSaved()
- textArea.delete('1.0', END)
- main_window.title("New File")
- is_saved = 0
- def openFile():
- global is_saved
- global file
- if is_saved == len(textArea.get('1.0', END+'-1c')):
- file = filedialog.askopenfile(parent=main_window, mode='rb', title="Please select a file:")
- data = file.read()
- textArea.delete('1.0', END)
- textArea.insert('1.0', data)
- file.close()
- main_window.title(file.name)
- is_saved = len(textArea.get('1.0', END+'-1c'))
- else:
- FileNotSaved()
- file = filedialog.askopenfile(parent=main_window, mode='rb', title="Please select a file:")
- data = file.read()
- textArea.delete('1.0', END)
- textArea.insert('1.0', data)
- file.close()
- main_window.title(file.name)
- is_saved = len(textArea.get('1.0', END+'-1c'))
- def saveFileAs():
- global file
- file = filedialog.asksaveasfile(mode='w')
- data = textArea.get('1.0', END+'-1c')
- file.write(data)
- file.close()
- main_window.title(file.name)
- global is_saved
- is_saved = len(textArea.get('1.0', END+'-1c'))
- def saveFile():
- global is_saved
- if file:
- fileToOpen = open(file.name, 'w')
- data = textArea.get('1.0', END+'-1c')
- fileToOpen.write(data)
- fileToOpen.close()
- is_saved = len(textArea.get('1.0', END+'-1c'))
- else:
- saveFileAs()
- def FileNotSaved():
- if messagebox.askyesno("Save?", "Do you want to save first?"):
- saveFile()
- def Exit():
- if is_saved == len(textArea.get('1.0', END+'-1c')):
- main_window.destroy()
- else:
- FileNotSaved()
- main_window.destroy()
- def Undo():
- textArea.edit_undo()
- def Redo():
- textArea.edit_redo()
- def Replace():
- input = simpledialog.askstring("Find and Replace", "Enter text to find...")
- replace = simpledialog.askstring("Find and Replace", "Enter text to replace with...")
- text = textArea.get('1.0', END+'-1c')
- if input in text:
- text = text.replace(input, replace)
- textArea.delete('1.0', END)
- textArea.insert('1.0', text)
- def Find():
- text = textArea.get('1.0', END+'-1c').lower()
- input = simpledialog.askstring("Find", "Enter text to find...").lower()
- startindex = []
- endindex = []
- lines = 0
- if input in text:
- text = textArea.get('1.0', END+'-1c').lower().splitlines()
- for var in text:
- character = text[lines].index(input)
- start = str(lines + 1) + '.' + str(character)
- startindex.append(start)
- end = str(lines + 1) + '.' + str(character + int(len(input)))
- endindex.append(end)
- textArea.tag_add('select', startindex[lines], endindex[lines])
- lines += 1
- textArea.tag_config('select', background = 'green')
- def Finds():
- textArea.tag_add('select', '1.0', '2.0')
- textArea.tag_config('select', foreground='green')
- def Findt():
- lines = 0
- list = []
- list2 = ['first line', 'why', 'third line']
- for item in list2:
- list.append(list2[lines])
- lines += 1
- print(list)
- is_saved = 0
- file = ""
- main_window = Tk()
- main_window.title("New File")
- textArea = scrolledtext.ScrolledText(main_window, width=100, height=30)
- menu = Menu(main_window)
- main_window.config(menu=menu)
- fileMenu = Menu(menu, tearoff=False)
- menu.add_cascade(label='File', menu=fileMenu)
- fileMenu.add_command(label='New', command=newFile)
- fileMenu.add_separator()
- fileMenu.add_command(label='Open', command=openFile)
- fileMenu.add_command(label='Save As', command=saveFileAs)
- fileMenu.add_command(label='Save', command=saveFile)
- fileMenu.add_separator()
- fileMenu.add_command(label='Exit', command=Exit)
- editMenu = Menu(menu, tearoff=False)
- menu.add_cascade(label='Edit', menu=editMenu)
- editMenu.add_command(label='Undo', command=Undo)
- editMenu.add_command(label='Redo', command=Redo)
- editMenu.add_separator()
- editMenu.add_command(label='Cut', command=lambda: textArea.event_generate('<Control-x>'))
- editMenu.add_command(label='Copy', command=lambda: textArea.event_generate('<Control-c>'))
- editMenu.add_command(label='Paste', command=lambda: textArea.event_generate('<Control-v>'))
- editMenu.add_separator()
- editMenu.add_command(label='Find', command =Find)
- editMenu.add_command(label='Replace', command=Replace)
- textArea.pack()
- main_window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement