如何查看Tkinter中是否存在小部件?

时间:2013-03-09 14:18:38

标签: python button listbox tkinter

现在,我知道您可以通过以下方式检查窗口是否存在:

x.winfo_exists()

返回布尔值。现在我已经搜索过,但一直无法找到我需要的东西。更具体地说,我需要检查我的按钮,标签,列表框,滑块等是否存在。

2 个答案:

答案 0 :(得分:17)

winfo_exists返回1,除非您销毁了窗口小部件,在这种情况下它返回0.此方法可以在任何窗口小部件类上调用,而不仅仅是Tk根或Toplevels。或者,您可以使用winfo_children获取窗口小部件的所有子项:

>>> import Tkinter as tk
>>> root = tk.Tk()
>>> label = tk.Label(root, text="Hello, world")
>>> label.winfo_exists()
1
>>> root.winfo_children()
[<Tkinter.Label instance at 0x0000000002ADC1C8>]
>>> label.destroy()
>>> label.winfo_exists()
0
>>> root.winfo_children()
[]

答案 1 :(得分:0)

您还可以打印类型,即..类型(标签)。这不仅有助于提供存在,而且还可以查找是否有任何事情发生,无类型&#39;没有错误。 type()将告诉您是否有实例或其他类型可以提供关于程序执行距离或将项目返回到您认为的要求的有价值线索! object.winfo_exists()和object.winfo_children是特定的,如果对象不是类型&#39;实例,则会抛出错误。