删除/忘记tkinter上的小部件

时间:2018-01-03 23:13:27

标签: python tkinter

我是Tkinter模块的新手(对python来说还是新手)我不能为我的生活找出如何使用remove或forget方法隐藏网格中的小部件。我似乎无法在网上找到相关的例子,教程文档除了语法之外还给了我很多东西。以下是我用来试图弄清楚的代码。如果这太过琐碎而道歉......

from tkinter import *
from tkinter import ttk


def delete():
    #where I would like to delete the label 'label'

window = Tk()
window.title("Window")
window.configure(background='#e4e5ff')

label = ttk.Label(window, text='text').grid(column=1, row=0)

ttk.Button(window, text='text',command = delete).grid(column=2,row=0)

window.mainloop()

1 个答案:

答案 0 :(得分:0)

要做到这一点,你必须使用2行来定义和布局小部件(无论如何这都是很好的做法)。

from tkinter import *
from tkinter import ttk

def delete():
    label.grid_forget()

window = Tk()
window.title("Window")
window.configure(background='#e4e5ff')

label = ttk.Label(window, text='text')
label.grid(column=1, row=0)

btn = ttk.Button(window, text='text',command = delete)
btn.grid(column=2,row=0)

window.mainloop()

但是,我怀疑这是一个XY问题。您是否尝试删除它以将其替换为另一个标签?如果是这样,您需要更新当前标签,而不是删除它并替换它。

def delete():
    label.config(text='new_text')