让按钮在运行过程后消失



我有一个tkinter窗口,目前有18个按钮,它们都具有相同的代码:

    Button2=Button(master,text='click me',command=lambda:callback())
    Button2.grid(row=1,column=2)

当我执行此代码时,它运行了过程

callback 

,但我希望它运行该过程,然后消失;我尝试了

def hide_me(event):
event.widget.grid_forget()
Button2=Button(master,text='click me',command=lambda:callback())
Button2.bind('<Button-1>',hide_me) 
Button2.grid(row=1,column=2)

但是,当我按下按钮时,它会使按钮消失而无需执行回调,当我尝试时:

def callback(Buttons):
   C = Characters.pop(0)
   Buttons.bind('<Button-1>',hide_me())
   return C()

Button2=Button(master,text='click me',command=lambda:callback(Button2))
Button2.bind('<Button-1>',hide_me) 
Button2.grid(row=1,column=2)

它运行回调,但按钮不会消失。有人可以告诉我我做错了什么吗?

如果您已经使用command关键字ARG,则不应调用bind

只需将callback()grid_forget()包装到一种方法中:

def callback_and_hide(button):
    callback()
    button.grid_forget()
Button2 = Button(master,text='click me',command=lambda: callback_and_hide(Button2))

最新更新