我有一个 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
关键字参数,则不应调用 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))
关于python - 运行程序后使按钮消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13055727/