题目
请设计并实现一款文本编辑器。程序允许用户打开、保存文本文件。
例如:
在用户打开文件时,会呈现打开文件对话框,
在用户保存文件时,会呈现保存为对话框
当打开文件出错时,程序不会崩溃,而是会提示错误信息,
当保存文件出错时,程序不会崩溃,而是会提示错误信息,
要求:
1.当再次打开另一个文件时,程序应当显示正确。
2.当打开和保存文件失败时,程序不应崩溃,而应提示错误信息。
3.使用tkinter.filedialog模块中的askopenfilename方法h和asksaveasfilename方法可以打开“打开文件”和“保存为文件“对话框。
4.使用异常处理,保证程序正常运行。
请将提交的实验报告命名为如下格式。
学号+姓名+实验7
例如:123456789+王思聪+实验7
解
from tkinter import *from tkinter.filedialog import askopenfilenamefrom tkinter.filedialog import asksaveasfilenameimport tkinter.messageboxclass 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
,在该文件夹下放入打开按钮和保存按钮的图标,这个自行网上查找即可
代码仅供参考
如果觉得《python tkinter实现文本编辑器》对你有帮助,请点赞、收藏,并留下你的观点哦!