【发布时间】:2014-07-06 02:34:54
【问题描述】:
我制作了一个非常基本的文本编辑器,您可以在其中保存到新的 .txt 文件或打开现有的文本文件。但是我希望能够在用户打开一个文本文件并点击保存按钮时将他们打开的文件替换为新文本。有什么可以让我开始的想法吗?
from Tkinter import *
import tkFileDialog
class Application(Frame):
def __init__(self, master):
Frame.__init__(self,master)
self.grid()
self.Create_Widgets()
def Create_Widgets(self):
self.SButton = Button(self,width=35)
self.SButton["text"]="Save"
self.SButton["command"]=self.Save
self.SButton.grid(row=0,column=0)
self.OButton = Button(self,width=35)
self.OButton["text"]="Open"
self.OButton["command"]=self.Open
self.OButton.grid(row=0,column=1)
self.Cont = Text(self,width=60,height=40)
self.Cont.grid(row=1,column=0,columnspan=2)
def Save(self):
Content=self.Cont.get(1.0,END)
File = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt")
if File is None:
return
File.write(Content)
File.close()
def Open(self):
Content=self.Cont.get(0.0,END)
File1 = tkFileDialog.askopenfilename()
File2 = open(File1,"r")
Cont2 = File2.read()
self.Cont.delete(1.0, END)
self.Cont.insert(1.0, Cont2)
root=Tk()
root.title="Basic Notepad 0.1"
app=Application(root)
root.mainloop()
【问题讨论】:
-
只写文件。你有什么问题?
-
如果您打开了文件进行读取而不是关闭它并打开它进行写入。
-
@PadraicCunningham 好吧,我需要找到最后打开的文件(它的位置)然后重新写入其内容,但我只是给了我一个弹出窗口来创建一个新文件。
-
那你要记住文件名,不要打开弹窗。
-
要记住前一个文件的位置,只需将其写入另一个文件即可。
标签: python text tkinter editor