飞道的博客

python tkinter实现文本编辑器

363人阅读  评论(0)

题目

请设计并实现一款文本编辑器。程序允许用户打开、保存文本文件。

例如:

在用户打开文件时,会呈现打开文件对话框,

在用户保存文件时,会呈现保存为对话框

当打开文件出错时,程序不会崩溃,而是会提示错误信息,

当保存文件出错时,程序不会崩溃,而是会提示错误信息,

要求:

1.当再次打开另一个文件时,程序应当显示正确。

2.当打开和保存文件失败时,程序不应崩溃,而应提示错误信息。

3.使用tkinter.filedialog模块中的askopenfilename方法h和asksaveasfilename方法可以打开“打开文件”和“保存为文件“对话框。

4.使用异常处理,保证程序正常运行。

请将提交的实验报告命名为如下格式。

学号+姓名+实验7

例如:123456789+王思聪+实验7

from tkinter import *
from tkinter.filedialog import askopenfilename
from tkinter.filedialog import asksaveasfilename
import tkinter.messagebox


class FileEditor:
    def __init__(self):
        window = Tk()
        menubar = Menu(window)
        window.config(menu=menubar)  
        operationMenu = Menu(menubar, tearoff=0)
        menubar.add_cascade(label="File", menu=operationMenu)
        operationMenu.add_command(label="Open", command=self.openFile)
        operationMenu.add_command(label="Save", command=self.saveFile)
        frame0 = Frame(window) 
        frame0.grid(row=1, column=1, sticky=W)
        openImage = PhotoImage(file="image/open.png")
        saveImage = PhotoImage(file="image/save.png")
        Button(frame0, image=openImage,
               command=self.openFile).grid(row=1, column=1, sticky=W)
        Button(frame0, image=saveImage,
               command=self.saveFile).grid(row=1, column=2)
        frame1 = Frame(window)
        frame1.grid(row=2, column=1)
        scrollbar = Scrollbar(frame1)
        scrollbar.pack(side=RIGHT, fill=Y)
        self.text = Text(frame1, width=40, height=20,
                         wrap=WORD, yscrollcommand=scrollbar.set)
        self.text.pack()
        scrollbar.config(command=self.text.yview)
        window.mainloop()  

    def openFile(self):
        filenameforreading = askopenfilename()
        try:
            infile = open(filenameforreading, "r", encoding="UTF-8")
            self.text.delete(1.0, "end")
            self.text.insert(END, infile.read()) 
            infile.close() 
        except:
            self.errorHandle("打开文件失败!")
    def saveFile(self):
        filenameforwriting = asksaveasfilename()
        try:
            outfile = open(filenameforwriting, "w")
            outfile.write(self.text.get(1.0, END))
            outfile.close()  
        except:
            self.errorHandle("保存文件失败!")
    def errorHandle(self, message):  
        tkinter.messagebox.showerror(title="error", message=message)


FileEditor()

直接运行程序是无法成功的,需要在同路径下新建一个文件夹 image,在该文件夹下放入打开按钮和保存按钮的图标,这个自行网上查找即可
代码仅供参考


转载:https://blog.csdn.net/m0_51126511/article/details/128352624
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场