Python 如何在tkinter中重建被破坏的帧?
我想知道是否有可能重新打包我之前在python tkinter中销毁的帧Python 如何在tkinter中重建被破坏的帧?,python,user-interface,tkinter,Python,User Interface,Tkinter,我想知道是否有可能重新打包我之前在python tkinter中销毁的帧 这可能吗?如何才能做到这一点?无法重新创建或重新使用已销毁的小部件 发件人: 销毁() 销毁小部件。小部件将从屏幕上删除,并释放与小部件关联的所有资源 这里的重要部分是释放所有相关资源。这包括子窗口小部件(如果窗口小部件有)、样式信息(如颜色,如果您明确设置了颜色),以及几乎所有其他信息。关于小部件的所有信息都消失了。尝试访问已销毁的小部件会出现如下Tcl错误: >>> widget.winfo_pare
这可能吗?如何才能做到这一点?无法重新创建或重新使用已销毁的小部件 发件人: 销毁() 销毁小部件。小部件将从屏幕上删除,并释放与小部件关联的所有资源 这里的重要部分是释放所有相关资源。这包括子窗口小部件(如果窗口小部件有)、样式信息(如颜色,如果您明确设置了颜色),以及几乎所有其他信息。关于小部件的所有信息都消失了。尝试访问已销毁的小部件会出现如下Tcl错误:
>>> widget.winfo_parent()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python\Python36-32\lib\tkinter\__init__.py", line 1014, in winfo_parent
return self.tk.call('winfo', 'parent', self._w)
_tkinter.TclError: bad window path name ".!frame"
>widget.winfo_parent()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Python\Python36-32\lib\tkinter\\uuuuu init\uuuuuu.py”,第1014行,在winfo\u父级中
返回self.tk.call('winfo','parent',self.\w)
_tkinter.TclError:错误的窗口路径名“!frame”
一旦小部件被销毁,它就无法恢复。事实上,没有理由认为这是必要的。如果您计划使用小部件,不要销毁它。您不能销毁小部件(框架就是小部件)。一个可能的解决方法是隐藏和取消隐藏它。你可以:
widget.pack_forget() # hide
...
widget.pack(...) # display the widget as usual
如果改为使用grid
,则更好,因为您可以在使用grid\u remove
之前的相同节点中取消隐藏或重新显示小部件:
widget.grid_remove() # hide
...
widget.grid() # unhide, places the widget on the last configured node
你为什么不能,你知道的,不毁掉它?这似乎是最简单的解决办法,不是吗?如果它被摧毁了,它就消失了。如果你不想破坏它,就不要破坏它。如果物理定律适用于信息定律,数据既不能被创建也不能被破坏,所以我理解这个问题的意图——尽管有点存在主义。也许你只是想隐藏小部件?请参阅Nae建议。