我有一个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))