from tkinter import * from tkinter.ttk import Combobox from tkinter import scrolledtext from tkinter import messagebox as mb import os def refresh(): titles = os.listdir() S=(box.size() - 1) box.delete(0,S) for i in titles: box.insert(END,i) def btn1Pressed(): titles = os.listdir() num = 1+ (len(titles)) txtf = 'New_Text_' + str(num) thsFile = open(txtf, 'tw') thsFile.close refresh() def btn2Pressed(): index = box.curselection() name = (box.get(index)) os.remove(name) S=(box.size() - 1) refresh() def boxSelected(*args): global L text = txt.get(1.0, END) name = (box.get(L)) f = open(name,'r+') f.write(text) f.close() index = box.curselection() name = (box.get(index)) title.configure(text=name) f = open(name, 'r+') text = f.read() txt.delete(1.0, END) txt.insert(0.0, text) L = index def btnRenPressed(): index = box.curselection() ReW = Tk() ReW.title("Enter new name") window.geometry('500x600') frameRename=Frame(ReW,bd=2) frameButtons12=Frame(ReW,bd=2) frameRename.pack(side='top') frameButtons12.pack(side='bottom') entryRe=Entry(frameRename) entryRe.pack() compBut=Button(frameButtons12, text="Rename", command=lambda: BSave(entryRe)) compBut.pack(side="left") noButton=Button(frameButtons12, text="Exit", command=ReW.destroy) noButton.pack(side='right') ReW.mainloop() def BSave(entryRe): nName = entryRe.get() index = box.curselection() name = (box.get(index)) os.rename(name,nName) refresh() f=open('config', 'r') f.close() os.chdir('texts') titles = os.listdir() L = 0 window = Tk() window.title("msin") window.geometry('600x800') # Главный фрейм mainFrame=Frame(window,bd=5) mainFrame.pack(fill="both", expand="true") # Левый и правый фреймы leftFrame=Frame(mainFrame,bd=2) leftFrame.pack(side='left') rightFrame=Frame(mainFrame,bd=2) rightFrame.pack(side='right',fill="both", expand="true") # Содержимое левого фрейма btnFrame=Frame(leftFrame,bd=2) boxFrame=Frame(leftFrame,bd=2) # Содержимое правого фрейма txtFrame=Frame(rightFrame,bd=5) topFrame=Frame(rightFrame,bd=2) topFrame.pack(side='top') # Содержимое верхнего фрейма titleFrame=Frame(topFrame,bd=2) titleFrame.pack(fill="both", expand="true") # Содержимое заголовочного фрейма saveFrame=Frame(titleFrame,bd=2) saveFrame.pack(side='left',fill="both") btnRen = Button(saveFrame, text="Rename",command=btnRenPressed) btnSave = Button(saveFrame, text="Save",command=btnRenPressed) btnRen.pack(side='left') btnSave.pack(side='right') # Лейбл с полем ввода заголовка title = Label(titleFrame, width=50, bd=2) title.pack(fill="both", expand="true") # Листбокс box = Listbox(boxFrame, bd=2, selectmode=BROWSE) for i in titles: box.insert(END,i) box.bind('<>', boxSelected) box.pack() boxFrame.pack(side='bottom') # Кнопка btn1 = Button(btnFrame,text="New",command=btn1Pressed) btn1.pack(side='left') btn2 = Button(btnFrame,text="Del",command=btn2Pressed) btn2.pack(side='right') btnFrame.pack(side='top') # Поле ввода текста txt = scrolledtext.ScrolledText(txtFrame, bd=2) txt.pack(fill="both", expand="true") txtFrame.pack(side="bottom",fill="both", expand="true") refresh() window.mainloop()