在Python 3中开发类似tkinter记事本的应用程序时出现TypeError
我正在尝试制作一个记事本应用程序-以下是我当前的代码:在Python 3中开发类似tkinter记事本的应用程序时出现TypeError,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在尝试制作一个记事本应用程序-以下是我当前的代码: from tkinter import * top=Tk() top.title('Mypad') def save(self,s): self.s=filedialog.asksaveasfilename(defaultextension='.txt') c=open(self.s,'w') w=c.write(str(e.get('1.0','end'))) def close(): top.destro
from tkinter import *
top=Tk()
top.title('Mypad')
def save(self,s):
self.s=filedialog.asksaveasfilename(defaultextension='.txt')
c=open(self.s,'w')
w=c.write(str(e.get('1.0','end')))
def close():
top.destroy()
menubar=Menu(top)
file=Menu(menubar,tearoff=0)
vet=file.add_command(label='Save',command=save)
file.add_separator()
file.add_command(label='Exit',command=close)
menubar.add_cascade(label='File',menu=file)
e=Text()
e.pack(ipady=30)
top.config(menu=menubar)
top.mainloop()
但当我运行它并试图保存它时,它是这样说的
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Workspace\python\lib\tkinter\__init__.py", line 1482, in __call__
return self.func(*args)
TypeError: save() missing 2 required positional arguments: 'self' and 's'
如何解决此问题?您需要先导入
filedialog
。在这里,您不需要self
,也不需要s
作为参数
from tkinter import *
from tkinter import filedialog
top=Tk()
top.title('Mypad')
def save():
s=filedialog.asksaveasfilename(defaultextension='.txt')
c=open(s,'w')
w=c.write(str(e.get('1.0','end')))
def close():
top.destroy()
menubar=Menu(top)
file=Menu(menubar,tearoff=0)
vet=file.add_command(label='Save',command=save)
file.add_separator()
file.add_command(label='Exit',command=close)
menubar.add_cascade(label='File',menu=file)
e=Text()
e.pack(ipady=30)
top.config(menu=menubar)
top.mainloop()