非类型对象没有属性';摧毁';使用Tkinter时Python中的错误
在使用Tkinter创建应用程序时,我遇到了destroy函数的错误。 这是我的密码:非类型对象没有属性';摧毁';使用Tkinter时Python中的错误,python,python-3.x,Python,Python 3.x,在使用Tkinter创建应用程序时,我遇到了destroy函数的错误。 这是我的密码: 从tkinter导入* root=Tk() def show(): 全局myl myl=Label(root,text='Done!!!')。pack() def ref(): myl.destroy() b1=按钮(root,text='Submit',font=('ariel',16),command=show).pack() b2=按钮(root,text='Refresh',font=('cambri
从tkinter导入*
root=Tk()
def show():
全局myl
myl=Label(root,text='Done!!!')。pack()
def ref():
myl.destroy()
b1=按钮(root,text='Submit',font=('ariel',16),command=show).pack()
b2=按钮(root,text='Refresh',font=('cambria',16),command=ref).pack()
root.mainloop()
我得到的错误是:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "c:\Users\dhrit\OneDrive\Desktop\Dhriti\python\test101.py", line 10, in ref
myl.destroy()
AttributeError: 'NoneType' object has no attribute 'destroy'
如何修复此错误?在show()中,您必须说:
def show():
global myl
myl = Label(root,text='Done!!!')
myl.pack()
所有的标签
和其他小部件都应该“放在屏幕上”,放在单独的一行上
为什么??因为myl=Label(..).pack()返回None
。当您调用destroy()
方法或myl
上的任何其他方法时,您所说的myl=Label(..).pack()
不存在。因此,您必须pack()
将其放在单独的一行中
希望你澄清了你的疑问,如果有任何错误请告诉我
干杯这回答了你的问题吗?现在它工作了……谢谢!!!。。。。