Python 3.x 是否有可能;“复兴”;.destroy()之后的按钮?
我正在用Python编写一个游戏,为此,我想在tkinter中有一些按钮,我可以从另一个按钮点击中销毁并“恢复”。有可能“复活”被破坏的按钮吗 我试着再次将按钮网格化,但没有成功Python 3.x 是否有可能;“复兴”;.destroy()之后的按钮?,python-3.x,button,tkinter,Python 3.x,Button,Tkinter,我正在用Python编写一个游戏,为此,我想在tkinter中有一些按钮,我可以从另一个按钮点击中销毁并“恢复”。有可能“复活”被破坏的按钮吗 我试着再次将按钮网格化,但没有成功 def btnclick(事件): b1.销毁() def恢复(事件): b1.网格(行=0,列=4) b1=按钮(根) b2=按钮(根) b1.绑定(“,b单击) b2.绑定(“,恢复) b1.网格(行=0,列=4) b2.网格(行=1,列=4) 我原以为这会将按钮放回屏幕上,但我只得到以下错误:\u tkinte
def btnclick(事件):
b1.销毁()
def恢复(事件):
b1.网格(行=0,列=4)
b1=按钮(根)
b2=按钮(根)
b1.绑定(“,b单击)
b2.绑定(“,恢复)
b1.网格(行=0,列=4)
b2.网格(行=1,列=4)
我原以为这会将按钮放回屏幕上,但我只得到以下错误:
\u tkinter.TclError:错误的窗口路径名“.47822896”
无法“恢复”已销毁的对象;您可以重新创建它,或者更好的是,您可以使用grid\u-forget
从GUI布局中删除它,然后使用几何体管理器grid
重新插入它
下面是一个简短的例子:
import tkinter as tk
def hide_b1():
b1.grid_forget()
def show_b1():
b1.grid(row=0, column=4)
root = tk.Tk()
b1 = tk.Button(root, text='b1', command=hide_b1)
b2 = tk.Button(root, text='b2', command=show_b1)
show_b1()
b2.grid(row=1, column=4)
root.mainloop()
请注意,tk.button
有一个属性command
,您应该利用并使用该属性,而不是对事件的自定义绑定