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编码文件的中文,其他都是乱码。

posted @ 2019-12-15 18:09  Hk_Mayfly  阅读(336)  评论(0编辑  收藏  举报