问题描述
如何清除= Label()的代码?
使用.place()函数a = Label()时如何清除此标签的文本?
l = Intvar()
t = Intvar()
a = StringVar()
def speed():
global a
length= l.get()
time = t.get()
answer = length/time
a = Label(frame,text=answer,font="Times 13 bold",bg="Black",fg="WHITE" ).place(x = 100,y = 160)
def clear():
'''This function is not clearing label of where I am displaying the answer in a = Label '''
l.set('')
t.set('')
#a.set('')<---NOT WORKING
#a.delete(0,'END')<----NOT WORKING
#a.destroty()<----NOT WORKING
#a.configure(text="")<---NOT WORKING
ll = Entry(frame,width=30,textvariable=l,border=5).place(x=150,y=90)
le = Label(frame,text="Enter Length :",font="Times 16 bold",bg="WHITE",fg="Black" ).place(x=10,y = 88 )
tt = Entry(frame,textvariable=t,y=130)
ti = Label(frame,text="Enter Time :",y = 128 )
ans = Label(frame,text="Speed = ",fg="Black" ).place(x = 10,y = 160)
spd = Button(frame,text="Calculate Speed",width=20,command=speed,fg="WHITE",border = 4 ).place(x=30,y = 190 )
cl = Button(frame,text="Clear Text",command=clear,border = 4 ).place(x=200,y = 190 )
解决方法
问题是,由于您将.place
与Label
/ Entry
对象的对象定义一起使用,因此返回值将为None
x = Label(<configurable_options>).place(...) # x is None
而
x = Label(<configurable_options>) # defines x as a Label object
x.place(...) # places x at your desired location
对于所有布局管理器-place
,grid
和pack
此外,您还需要为textvaribale
分配一个Label
才能清除它们(感谢@CoolCloud)
l = StringVar()
l1 = Label(...,textvariable=l)
如果您不想添加文本变量,则只需使用.config
的{{1}}方法。
Label