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

时间:2015-04-05 20:35:21

标签: python-3.x tkinter

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

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

它想要一个整数参数。 有谁知道那是什么?

1 个答案:

答案 0 :(得分:1)

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

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

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