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
命令也不需要整数。我的猜测是,entry
或 open
之一不是您认为的那样。也许您有一个方法或另一个对象具有这些名称之一?
我建议将对 get
的调用和打开放在不同的行中,以确保您知道该语句的哪一部分引发了错误:
text = entry.get()
current = open(text, 'w')
我正在尝试 运行 文本编辑器的以下代码。
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
命令也不需要整数。我的猜测是,entry
或 open
之一不是您认为的那样。也许您有一个方法或另一个对象具有这些名称之一?
我建议将对 get
的调用和打开放在不同的行中,以确保您知道该语句的哪一部分引发了错误:
text = entry.get()
current = open(text, 'w')