Python练习3--图形化文本编辑器
# -*- encoding:utf-8 -*- import os from Tkinter import * from tkinter import messagebox class CText: def __init__(self,master): self.master = master self.Menu() def WriteFunc(self): # 获取文本框中的内容,从0行下标0开始到结束 self.content = self.textmodel.get(0.0,END) with open(self.fname, 'w') as fobj: fobj.write(self.content.encode('utf-8')) messagebox.showinfo('成功','保存成功到文件') fobj.close() def ReadFunc(self): self.fname = self.model.get() # 文件处理,如果文件不存在,就创建一个 if not os.path.exists(self.fname): messagebox.showwarning('警告','文件不存在,将自动创建文件!') with open(self.fname, 'r') as fobj: self.content = fobj.read() # 删除文本框中的内容 self.textmodel.delete(0.0,END) # 插入读取到的内容 self.textmodel.insert(END,self.content) fobj.close() def Menu(self): # 创建Entry组件 self.model = Entry(self.master,relief=SUNKEN, font=('Arial', 20),width=40) self.model.pack(side=TOP,pady=10) # 创建按钮 Button(self.master,text='打开',command=self.ReadFunc).pack(fill=X,expand=YES) Button(self.master,text='保存',command=self.WriteFunc).pack(fill=X,expand=YES) self.textmodel = Text(self.master) self.textmodel.pack() if __name__ == '__main__': root = Tk() root.title('文本编辑器') CText(root) root.mainloop()
但是有个bug,只能显示utf-8编码文件的中文,其他都是乱码。