Суть в том, что программа должна каждую минуту записывать данные окна text в json file. а при повторном запуске считывать их. Но данные никак не хотят считываться.
import json
from tkinter import *
from tkinter import messagebox
from tkinter.filedialog import askopenfile, asksaveasfile
file_name = NONE
def new_file():
global file_name
file_name = "Без названия"
text.delete('1.0', END)
def save_as():
out = asksaveasfile(mode="w", defaultextension=".txt")
data = text.get('1.0', END)
try:
out.write(data.rstrip())
except Exception:
messagebox.showerror("Не получилось сохранить файл!")
def open_file():
global file_name
inp = askopenfile(mode='r')
if inp is None:
return
file_name = inp.name
data = inp.read()
text.delete('1.0', END)
text.insert('1.0', data)
def restart_font():
global font
font = str(entry.get())
if font == "":
messagebox.showerror("Ошибка", "Поле ввода шрифта пусто")
else:
text.config(font=font)
def autosave():
way = "last_node.json"
text_save = text.get('1.0', END)
with open(way, "w", encoding='utf-8') as f:
json.dump(text_save, f, indent=4, ensure_ascii=False)
root.after(60000 * 1, autosave)
# f.write(text_save)
root = Tk()
root.title("Notes")
root.resizable(width=True, height=True)
root.geometry("1200x700")
font = StringVar()
frame_ent = Frame(root, bg="grey")
text = Text(root, font=font, width=400, height=300)
entry = Entry(frame_ent, textvariable=font, width=600, font=20)
frame_base = Frame
text.place(relheight=0.95, relwidth=0.6, rely=0.05)
frame_ent.place(relheight=0.3)
entry.pack(side=TOP)
menu_bar = Menu(root)
file_menu = Menu(menu_bar)
file_menu2 = Menu(menu_bar)
second_menu = Menu(file_menu2)
file_menu.add_command(label="Новая заметка", command=new_file)
file_menu.add_command(label="Открыть файл", command=open_file)
file_menu.add_command(label="Сохранить как", command=save_as)
file_menu2.add_command(label="Enter font", command=restart_font)
menu_bar.add_cascade(label="Файлы", menu=file_menu)
menu_bar.add_cascade(label="Вид", menu=file_menu2)
root.config(menu=menu_bar)
way = 'last_node.json'
with open(way) as f:
insert = json.load(f)
print(f"{insert}")
text.insert(INSERT, insert)
#autosave()
root.mainloop()