【问题标题】:How do I clear text displayed using Tkinter label().place() function [duplicate]如何清除使用 Tkinter label().place() 函数显示的文本 [重复]
【发布时间】:2020-10-09 10:52:38
【问题描述】:

如何清除 a = 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, width=30, textvariable=t , border=5).place(x=150 , y=130)
ti = Label(frame, text="Enter Time :" ,font="Times 16 bold" , bg="WHITE", fg="Black" ).place(x=10 , y = 128 )

ans = Label(frame, text="Speed = " , font="Times 16 bold", bg="WHITE", fg="Black" ).place(x = 10 , y = 160)

spd = Button(frame, text="Calculate Speed", width=20, command=speed , bg="Black", fg="WHITE" , border = 4 ).place(x=30 , y = 190 )
cl = Button(frame, text="Clear Text", width=20, command=clear , bg="Black", fg="WHITE" , border = 4 ).place(x=200 , y = 190 )

【问题讨论】:

  • 您也可以将textvariable 用于Label 小部件。
  • 按照下面给出的答案清除标签后,请尝试说 - le['text'] = '' 或者如果您想暂时删除它,请说 le.place_forget()

标签: python-3.x tkinter tkinter-label


【解决方案1】:

问题在于,由于您已将 .placeLabel/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

这对于所有布局管理器正确 - placegridpack

此外,您还需要为您的Label 分配一个textvaribale 才能清除它们(感谢@CoolCloud)

l = StringVar()
l1 = Label(..., textvariable=l)

如果您不想添加文本变量,则只需使用Label.config 方法。

l1.config(text='')

【讨论】:

  • 这会清除标签吗?
  • 是的。这将清除标签。此外,这个答案更像是关于你应该如何编写 tkinter 元素的指导
  • 嗯,我不明白他的代码是如何工作的,因为他还没有为标签分配textvariable,或者我错了
  • @CoolCloud 是的,你是对的。他需要将l 定义为标签l1 的文本变量。谢谢。我会更新答案
  • @CoolCloud 我已经分配了文本变量,唯一的问题是它没有清除我显示答案的标签文本。根据 FrainBr33z3 的指导方针,它清除了 'a = Label( text= answer) ' 的文本
猜你喜欢
  • 1970-01-01
  • 2022-08-20
  • 2019-10-27
  • 1970-01-01
  • 2015-09-20
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多