代码:
from tkinter import *
from tkinter.filedialog import *
class Application(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.master=master
self.pack()
self.create()
def create(self):
self.w1 = Text(root, height=40, width=60).pack()
self.contextmenu=Menu(root)
self.contextmenu.add_command(label="背景颜色",command=self.color)
root.bind("<Button-3>",self.creatcontextmenu)
self.numenu=Menu(root)
self.file=Menu(self.numenu)
self.edit=Menu(self.numenu)
self.help=Menu(self.numenu)
self.numenu.add_cascade(label="文件(F)",menu=self.file)
self.numenu.add_cascade(label="编辑(E)",menu=self.edit)
self.numenu.add_cascade(label="帮助(H)",menu=self.help)
self.file.add_command(label="新建",accelerator="ctrl+n",command=self.newfile)
self.file.add_command(label="打开",accelerator="ctrl+o",command=self.openfile)
self.file.add_command(label="保存",accelerator="ctrl+s",command=self.savefile)
self.file.add_command(label="退出",accelerator="ctrl+q",command=self.quitfile)
self.edit.add_command(label="编辑",accelerator="ctri+e")
self.help.add_command(label="帮助",accelerator="ctrl+h")
root["menu"]=self.numenu
def newfile(self):
pass
def openfile(self):
with askopenfile(title="请打开一个文件") as f:
self.filename=f.name()
print(self.filename)
def savefile(self):
pass
def quitfile(self):
pass
def color(self):
pass
def creatcontextmenu(self,event):
self.contextmenu.post(event.x_root,event.y_root)
root=Tk()
root.geometry("400x400+200+200")
e=Application(root)
root.mainloop()
运行结果:
老师请问一下,我点打开文件执行def openfile 方法的时候,我想打印一下文件名测试一下程序,为什么会出现这个错误呢?