基本上,我想花很多时间来制作文本编辑器。 (不是出于编码原因)。我从两天前开始从事这项工作。 一切都很好,直到我发现当您“另存为”项目时,以及在编写某些内容并单击保存按钮后,它都不会保存。请帮忙,我是tkinter的新手,我的灵感来自教程 谢谢。
from tkinter import *
from tkinter import filedialog
filename = ''
def new_file():
filename = "Untitled"
text.delete(0.0, END)
def open_file():
file1=filedialog.askopenfile(mode='r')
data = file1.read()
text.delete(0.0, END)
text.insert(0.0, data)
def save_file():
filename = file1
data = text.get(0.0, END)
file1 = open(filename, "w")
file1.write(data)
def save_as():
file1 = filedialog.asksaveasfile(mode = 'w')
data = text.get(0.0, END)
file1.write(data)
gui = Tk()
gui.title("Wind Text Editor")
gui.geometry("600x600")
text = Text(gui, height=600, width = 600)
text.pack()
mymenu = Menu()
list1 = Menu()
list2 = Menu()
list3 = Menu()
list4 = Menu()
list1.add_command(label='New', command = new_file)
list2.add_command(label='Open File', command = open_file)
list3.add_command(label='Save File', command = save_file)
list3.add_command(label='Save File As', command = save_as)
list4.add_command(label='Exit', command = gui.quit)
mymenu.add_cascade(label = 'File', menu = list1)
mymenu.add_cascade(label = 'Open', menu = list2)
mymenu.add_cascade(label = 'Save', menu = list3)
mymenu.add_cascade(label = 'Exit', menu = list4)
gui.config(menu=mymenu)
gui.mainloop()
答案 0 :(得分:0)
您显然正在用file1文件句柄覆盖文件名。从save_file():函数中删除filename = file1
。
def save_file():
data = text.get(0.0, END)
file1 = open(filename, "w")
file1.write(data)