【发布时间】:2015-05-18 12:34:06
【问题描述】:
我想查看 Tkinter 小部件是否存在,如果存在,我可以将其删除。
此站点上的另一个answer 使用widget.winfo_exists,但即使小部件尚未创建,它也会返回1,并且仅在小部件已被销毁时才返回0:
import Tkinter as tk
root = tk.Tk()
label = tk.Label(root)
print label.winfo_exists() # returns 1
和:
import Tkinter as tk
root = tk.Tk()
#label = tk.Label(root)
print label.winfo_exists() # also returns 1
而:
import Tkinter as tk
root = tk.Tk()
label = tk.Label(root)
label.destroy()
print label.winfo_exists() # returns 0
我试图以这种方式使用它:
import Tkinter as tk
root = tk.Tk()
# label may exist
if label.winfo_exists() == 1:
label.destroy() # doesn't work
【问题讨论】:
-
你确定吗?在您的第二种情况下,我希望
NameError。另外,如果你尝试 re-destroy一个小部件会有什么问题? -
如果一个小部件还没有创建,你怎么可能在它上面调用
winfo_exists?