Я пишу свой текстовый редактор и я не могу понять как копировать выделенный текст tkinter
сам код
#библиотеки-------------------------
from tkinter import *
from tkinter import filedialog as fd
from tkinter import scrolledtext
from tkinter import ttk
from tkinter import messagebox as ms
#-----------------------------------
savefile = None#сюда записывается путь сохранения
def new():
global savefile
res = ms.askyesno('Создание нового документа...','Сохранить преведущий документ?')
if res == True:
save()#вызов вункции сохранить( save )
txt.delete('1.0', END)#удаление символов из документа
savefile = None#обнуление пути сохранения
elif res == False:
txt.delete('1.0', END)#удаление символов из документа
savefile = None#обнуление пути сохранения
else:
pass
def open_file():
global savefile
res = ms.askyesno('Открытие документа...','Сохранить преведущий документ?')
if res == True:
save()
fileopen = fd.askopenfilename()
if fileopen:
file = open(fileopen, 'r')
data = file.read()
txt.delete('1.0', END)
txt.insert(END, data)
savefile = None
elif res == False:
fileopen = fd.askopenfilename()
if fileopen:
file = open(fileopen, 'r')
data = file.read()
txt.delete('1.0', END)
txt.insert(END, data)
savefile = None
else:
pass
def save_as():
global savefile
global text
savefile = fd.asksaveasfilename(defaultextension='txt')#получение пути сохраниния
if savefile:
file = open(savefile, 'w')#сохранение
data = txt.get('1.0', END)#записать в дату то что есть в текстовом поле
file.write(data)#редактировать и записать
def save():
global savefile
global text
if savefile == None:#если пути нет то сохранение файла с укозанием пути
savefile = fd.asksaveasfilename(defaultextension='txt')#получение пути сохранения
if savefile:
file = open(savefile, 'w')#сохранение
data = txt.get('1.0', END)#записать в дату то что есть в текстовом поле
file.write(data)#редактировать и записать
else:#если путь есть то сохранение файла по данному пути
file = open(savefile, 'w')
data = txt.get('1.0', END)
file.write(data)
def window_destroy():
global window
global text
res = ms.askyesnocancel('Выход','Вы желаете сохранить файл')
if res == True:
File.save()
window.destroy
elif res == False:
window.destroy()
elif res == None:
pass
else:
pass
def popup(e):
x = e
y = e
menup.post(e.x_root, e.y_root)
def on_close():
window_destroy()
window = Tk()
window.title('текстовый редактор')
window.minsize(width = 500,height=500)
window.maxsize(width = 500,height=500)
window.protocol('WM_DELETE_WINDOW', on_close)
#поле ввода текста
txt = scrolledtext.ScrolledText(window, width = 60, height = 40, wrap='word')
txt.grid(column=0,row=0)
window.bind("<Control-s>",save)
window.bind("<Button-3>", popup)
#вкладки меню
menu = Menu(window)
menuBar = Menu(menu)
menuBar.add_command(label = "Новый",command=new)
menuBar.add_command(label = "Открыть",command=open_file)
menuBar.add_separator()
menuBar.add_command(label = "Сохранить",command=save)
menuBar.add_command(label = "Сохранить как",command=save_as)
menu.add_cascade(label='Файл', menu=menuBar)
menu.add_cascade(label='Информация')
menu.add_cascade(label="Выйти",command=window_destroy)
#----------------------------------------------------
menup = Menu(tearoff=0)
menup.add_command(label="Вырезать")
menup.add_command(label="Вставить")
menup.add_command(label="Копировать")
window.config(menu=menu)
window.mainloop()