我有一个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)
它运行回调,但按钮不会消失。谁能告诉我我做错了什么?
答案 0 :(得分:1)
如果您已使用bind
关键字arg,则不应致电command
。
只需将callback()
和grid_forget()
打包成一个方法:
def callback_and_hide(button):
callback()
button.grid_forget()
Button2 = Button(master,text='click me',command=lambda: callback_and_hide(Button2))