我正在尝试为文本编辑器运行以下代码。
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
它想要一个整数参数。 有谁知道那是什么?
答案 0 :(得分:1)
Entry小部件的实例不需要get
方法的任何参数。你正确地调用它。标准open
命令也不需要整数。我的猜测是,entry
或open
中的一个不是您认为的那个。也许你有一个方法或其他具有这些名称的对象?
我建议将调用放在get
并打开单独的行,以确保您知道该语句的哪一部分引发了错误:
text = entry.get()
current = open(text, 'w')