tkinter 文本输入小部件的 .get 方法缺少参数错误

Missing argument error for .get method of tkinter text entry widget

我正在尝试 运行 文本编辑器的以下代码。

def newfile():
current = None
def create_file(entry):
    nonlocal current
    current = open(entry.get(),'w')
    e.master.destroy()
chdir(askdirectory())
name=Tk()
name.title("Name the File?")
prompt=Label(name, text="Enter name for new file:")
prompt.grid(row=0)
e=Entry(name)
e.grid(row=1)
e.insert(0, "Untitled")
create=Button(name, text="Create", command = lambda: create_file(e))
create.grid(row=2, column=3)
name.mainloop()
return current

但是我得到这个错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.2/tkinter/__init__.py", line 1402, in __call__
    return self.func(*args)
  File "<pyshell#1>", line 15, in <lambda>
    create=Button(name, text="Create", command = lambda: create_file(e))
  File "<pyshell#1>", line 5, in create_file
    current = open(entry.get(),'w')
TypeError: an integer is required

它需要一个整数参数。 有人知道那是什么吗?

条目小部件的实例不需要 get 方法的任何参数。您正确地调用了它。标准 open 命令也不需要整数。我的猜测是,entryopen 之一不是您认为的那样。也许您有一个方法或另一个对象具有这些名称之一?

我建议将对 get 的调用和打开放在不同的行中,以确保您知道该语句的哪一部分引发了错误:

text = entry.get()
current = open(text, 'w')