有没有办法使用在 tkinter 中添加标签的相同按钮删除标签?
Is there a way to delete a label with the same button that also adds a label in tkinter?
from tkinter import *
import time
root = Tk()
label = Label(root, text="enter Something below")
label.pack()
textbox = Entry(root)
textbox.pack()
label2 = Label(root, text = textbox.get())
def save():
if label2.winfo_exists == 1:
label2.pack_forget()
label2.pack()
else:
label2.pack_forget()
label2.pack()
button = Button(root, text="press for repetition", command=save)
button.pack()
root.mainloop()
当我第二次按下按钮时,没有任何东西被删除,所以我想做的是删除已经用同一个按钮打包的东西。所以如果我输入你好,那么你好吗?
结果是这样的:
Enter Something below
(this is the textbox)
Hello
How are you?
我希望 Hello
已被删除,只显示 How are you?
。
您不需要销毁标签并重新创建标签。只需创建标签一次,然后在 save()
函数中更新其文本:
from tkinter import *
root = Tk()
label = Label(root, text="enter Something below")
label.pack()
textbox = Entry(root)
textbox.pack()
label2 = Label(root) # create the hidden label
def save():
# update the label text
label2.config(text=textbox.get())
# show the label. remove 'before=button' to show it below the button
label2.pack(before=button)
button = Button(root, text="press for repetition", command=save)
button.pack()
root.mainloop()
from tkinter import *
import time
root = Tk()
label = Label(root, text="enter Something below")
label.pack()
textbox = Entry(root)
textbox.pack()
label2 = Label(root, text = textbox.get())
def save():
if label2.winfo_exists == 1:
label2.pack_forget()
label2.pack()
else:
label2.pack_forget()
label2.pack()
button = Button(root, text="press for repetition", command=save)
button.pack()
root.mainloop()
当我第二次按下按钮时,没有任何东西被删除,所以我想做的是删除已经用同一个按钮打包的东西。所以如果我输入你好,那么你好吗?
结果是这样的:
Enter Something below
(this is the textbox)
Hello
How are you?
我希望 Hello
已被删除,只显示 How are you?
。
您不需要销毁标签并重新创建标签。只需创建标签一次,然后在 save()
函数中更新其文本:
from tkinter import *
root = Tk()
label = Label(root, text="enter Something below")
label.pack()
textbox = Entry(root)
textbox.pack()
label2 = Label(root) # create the hidden label
def save():
# update the label text
label2.config(text=textbox.get())
# show the label. remove 'before=button' to show it below the button
label2.pack(before=button)
button = Button(root, text="press for repetition", command=save)
button.pack()
root.mainloop()