老师,我总是报下面的错误,该怎么解决,我百度了但是没找到什么有效地方法
# coding=utf-8
"""开发记事本软件,使用面向对象的编程方式"""
from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *
class Application(Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.textPad = None
self.filename = None
self.Contextmenu = None
self.pack()
self.creatwidget()
def creatwidget(self):
# 创建菜单
menubar = Menu(root)
menuFile = Menu(menubar)
menuEdit = Menu(menubar)
menuHelp = Menu(menubar)
# 把菜单添加到主菜单中
menubar.add_cascade(label="文件F", menu=menuFile)
menubar.add_cascade(label="编辑E", menu=menuEdit)
menubar.add_cascade(label="帮助H", menu=menuHelp)
# 在文件菜单下添加选项
# 都可以通过command参数绑定方法,此处省略
# accelerator是快捷键参数
menuFile.add_command(label="新建N", accelerator="ctrl+n")
menuFile.add_command(label="打开O", accelerator="ctrl+o",
command=self.openfile)
menuFile.add_command(label="保存S", accelerator="ctrl+s",
command=self.savefile)
# 添加一道下滑线
menuFile.add_separator()
menuFile.add_command(label="退出", accelerator="ctrl+q",
command=self.exit)
# 添加上下文菜单,即右键快捷菜单
self.Contextmenu = Menu(self.master)
self.Contextmenu.add_command(label="选择背景颜色", command=self.choosebgcolor)
self.master.bind("<Button-3>", self.ms)
# 把主菜单添加到主窗口
root.config(menu=menubar)
self.textPad = Text(self.master, width=300, height=300, bg="gray")
self.textPad.pack()
# 绑定快捷键
root.bind("<Control-o>", self.openfile)
root.bind("<Control-s>", self.savefile)
root.bind("<Control-q>", self.exit)
root.bind("<Control-n>", self.newfile)
def ms(self, event):
self.Contextmenu.post(event.x_root, event.y_root)
def exit(self, event=None):
self.master.quit()
def openfile(self, event=None):
self.textPad.delete(1.0, END)
with askopenfile(title="打开文本文件", filetypes=[("文本文件", ".txt")]) as file:
self.filename = file.name
self.textPad.insert(INSERT, file.read())
def savefile(self, event=None):
with open(self.filename, "w") as file:
c = self.textPad.get(1.0, END)
file.write(c)
def newfile(self, event=None):
self.textPad.delete(1.0, END)
self.filename = asksaveasfilename(title="新建文件",
initialfile="未命名.txt", filetypes=[(
"文本文件", ".txt")], defaultextension=".txt")
def choosebgcolor(self):
colors = askcolor(color="gray", title="选择背景颜色")
self.textPad.config(bg=colors[1])
if __name__ == "__main__":
root = Tk()
root.geometry('500x500')
app = Application(root)
root.mainloop()
