Мои знакомые попросили помочь им в написании простого текстового редактора (надо для сдачи зачета). Но, к сожалению, они затянули и надо сдавать буквально в четверг на этой неделе (((. Нужно в приведенный ниже исходник добавить функции удаления, вырезки, копирования и вставки фрагмента текста:
from Tkinter import *
from ScrolledText import *
import tkMessageBox
from tkFileDialog import *
import fileinput
tl=
root=None
# Функция выхода из редактора
def die():
sys.exit(0)
def about():
tkMessageBox.showinfo("Текстовый редактор", \
"Версия 1.0\n"\)
def neweditor():
global root
tl.append(editor(root))
class editor:
def __init__(self, rt):
if rt==None:
self.t=Tk()
else:
self.t=Toplevel(rt)
self.t.title("Tkeditor %d" % len(tl))
self.bar = Menu(rt)
# меню работы с файлами
self.filem = Menu(self.bar)
self.filem.add_command(label="Open...",\
command=self.openfile)
self.filem.add_command(label="New...",\
command=neweditor)
self.filem.add_command(label="Save as...",\
command=self.savefileas)
self.filem.add_command(label="Close",\
command=self.close)
self.filem.add_separator()
self.filem.add_command(label="Exit", command=die)
# меню редактирования текста
self.editm = Menu(self.bar)
self.editm.add_command(label="Del...")
self.editm.add_command(label="Cut...")
self.editm.add_command(label="Сopy...")
self.editm.add_command(label="Paste...")
# меню о программе
self.helpm = Menu(self.bar)
self.helpm.add_command(label="About", command=about)
self.bar.add_cascade(label="File", menu=self.filem)
self.bar.add_cascade(label="Edit", menu=self.editm)
self.bar.add_cascade(label="Help", menu=self.helpm)
self.t.config(menu=self.bar)
self.f = Frame(self.t,width=512)
self.f.pack(expand=1, fill=BOTH)
self.st = ScrolledText(self.f,background="white")
self.st.pack(side=LEFT, fill=BOTH, expand=1)
# функция закрытия
def close(self):
self.t.destroy()
# функция открытия файла
def openfile(self):
pl=END
oname = askopenfilename()
if oname:
for line in fileinput.input(oname):
self.st.insert(pl,line)
self.t.title(oname)
# функция удаления фрагмента
# функция cut фрагмента
# функция paste фрагмента
# функция copy фрагмента
# функция сохранить как...
def savefileas(self):
sname=asksaveasfilename(filetypes=)
if sname:
ofp=open(sname,"w")
ofp.write(self.st.get(1.0,END))
ofp.flush()
ofp.close()
self.t.title(sname)
if __name__=="__main__":
root=None
tl.append(editor(root))
root=tl.t
root.mainloop()
Помогите, пожалуйста, а то я просто никогда не сталкивался с этим языком и времени на освоение практически не осталось. Очень не хотелось бы их подводить (светит отчисление).
Заранее благодарен.