如何在 tkinter 中点击按钮后消失?

how to disappear a button after clicking on it in tkinter?

考虑以下代码:

from tkinter import *
root=Tk()
root.geometry('700x700')
frame=Frame(root)
frame.pack(fill=BOTH,expand=True)
def opencanvas():
    canvas=Canvas(frame,bg='red')
    canvas.place(x=50,y=50,height=300,width=300)
    button2=Button(frame,text='exit',command=canvas.place_forget)
    button2.place(x=5,y=10)
button1=Button(frame,text='open',command=opencanvas)
button1.place(x=5,y=10)
mainloop()

这个程序在 tkinter window 中打开一个框架,在 frame.when 中打开一个 'open' 按钮,按下 'open',一个 canvas 打开,一个按钮命名 'exit' 出现在框架中与打开 button.exit 按钮隐藏 canvas.

相同的位置

单击'exit'按钮时,我想在执行操作后自动消失'exit'按钮(即隐藏canvas)。我应该怎么做才能做到这一点?

我想在 opencanvas() 中插入一些命令,它会在按钮 2 按下后立即消失。

nb: 两个按钮应该放在同一个地方并且具有相同的尺寸。

根据您使用的几何管理器,使用 button1.place_forget().grid_forget().pack_forget()。如果您使用这些,则该按钮将被隐藏。要取回按钮,请使用 .place() 等...

如果你愿意,你可以使用 button1.destroy() 但是这个 永久删除按钮 ,如果你必须再次制作那个按钮,你必须从开始。

使用 button.place_forget() 代码隐藏按钮,然后 button1.place(x=5,y=10) 显示按钮

我发现 question.It 的答案可以通过在按钮命令中使用 lambda 来完成,如下所示。

button2=Button(frame,text='exit',command=lambda:[canvas.place_forget(),button2.place_forget()])

lambda 函数一条一条执行命令。