如何在 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 函数一条一条执行命令。
考虑以下代码:
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 函数一条一条执行命令。