'NoneType' 对象没有属性删除
'NoneType' object has no attribute delete
我创建了一个程序,可以根据输入框输入创建引文。我正在尝试添加一个按钮,该按钮在单击时清除所有输入框;但是,我发现错误 'NoneType' object has no attribute delete
发生是因为 none 我的输入框被打包了。当我将 .place()
替换为 .pack()
时,我发现它有效。有什么方法可以使此功能与未填充的输入框一起使用(因为我需要在特定位置使用这些框)?
这是我的代码示例:
from tkinter import *
#create window
win = Tk()
win.geometry("800x500")
#clear function
def clearBoxes():
author1Input.delete(0,END)
#entry box
author1 = StringVar()
author1Input = Entry(win,textvariable=author1).place(x=30,y=120)
#button to clear
Button(win,text="Clear",command=clearBoxes).place(x=30,y=200)
win.mainloop()
- 函数
def clearBoxes():
需要参数,否则 nameInput 未引用任何内容。您应该将 Entry
对象作为参数传递。
- 无论出于何种原因,在一行中使用
author1Input = Entry(win,textvariable=author1).place(x=30,y=120)
会把事情搞砸。它需要在定义小部件之后放置。比我聪明的人可以解释为什么。
这是完整的解决方案。
from tkinter import *
from functools import partial
#create window
win = Tk()
win.geometry("800x500")
#clear function
def clearBoxes(nameInput):
nameInput.delete(0,END)
#entry box
author1 = StringVar()
author1Input = Entry(win,textvariable=author1)
author1Input.place(x=30,y=120)
func = partial(clearBoxes, author1Input)
#button to clear
Button(win,text="Clear",command=func).place(x=30,y=200)
win.mainloop()
我创建了一个程序,可以根据输入框输入创建引文。我正在尝试添加一个按钮,该按钮在单击时清除所有输入框;但是,我发现错误 'NoneType' object has no attribute delete
发生是因为 none 我的输入框被打包了。当我将 .place()
替换为 .pack()
时,我发现它有效。有什么方法可以使此功能与未填充的输入框一起使用(因为我需要在特定位置使用这些框)?
这是我的代码示例:
from tkinter import *
#create window
win = Tk()
win.geometry("800x500")
#clear function
def clearBoxes():
author1Input.delete(0,END)
#entry box
author1 = StringVar()
author1Input = Entry(win,textvariable=author1).place(x=30,y=120)
#button to clear
Button(win,text="Clear",command=clearBoxes).place(x=30,y=200)
win.mainloop()
- 函数
def clearBoxes():
需要参数,否则 nameInput 未引用任何内容。您应该将Entry
对象作为参数传递。 - 无论出于何种原因,在一行中使用
author1Input = Entry(win,textvariable=author1).place(x=30,y=120)
会把事情搞砸。它需要在定义小部件之后放置。比我聪明的人可以解释为什么。
这是完整的解决方案。
from tkinter import *
from functools import partial
#create window
win = Tk()
win.geometry("800x500")
#clear function
def clearBoxes(nameInput):
nameInput.delete(0,END)
#entry box
author1 = StringVar()
author1Input = Entry(win,textvariable=author1)
author1Input.place(x=30,y=120)
func = partial(clearBoxes, author1Input)
#button to clear
Button(win,text="Clear",command=func).place(x=30,y=200)
win.mainloop()