,我知道,你可以检查是否存在由一个窗口:如何查看Tkinter中是否存在小部件?现在
x.winfo_exists()
返回boolean。现在我已经搜索,但一直没能找到我需要的东西。更具体地说,我需要检查我的按钮,标签,列表框,滑块等的存在。
,我知道,你可以检查是否存在由一个窗口:如何查看Tkinter中是否存在小部件?现在
x.winfo_exists()
返回boolean。现在我已经搜索,但一直没能找到我需要的东西。更具体地说,我需要检查我的按钮,标签,列表框,滑块等的存在。
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()
[]
如果您没有将框架对象返回到“根”(或者直接不是从它创建的),您将无法执行'label.destroy()',但是您仍然可以搜索并遍历根目录。 winfo_children()'列表。例如,如果你在顶部有一个菜单,'root.winfo_children()[0] .destroy()'或'root.winfo_children()[1] .destroy()'。无论如何,为您使用的每个框架创建手柄更容易,并且在主框架内插入每个按钮/标签/等等。 – erm3nda 2015-11-08 20:11:17
您还可以打印类型即..类型(标签)。这可以有助于提供不仅存在,而且还可以发现是否有任何内容'没有类型'没有错误。类型()会告诉你,如果你有一个实例或其他类型,可以提供有价值的线索,说明程序执行的程度如何,或者将项目返回到你认为你所要求的内容。 object.winfo_exists()和object.winfo_children是特定的,并且如果对象不是类型'实例',将会发生错误。
[如何写出一个很好的答案](http://stackoverflow.com/help/how-to-answer) – Manish 2016-11-27 14:54:37
你的问题不清楚。你说你知道你可以调用'winfo_exists'来确定一个小部件是否存在,但是你不知道如何判断_your_小部件是否存在? – 2013-03-09 17:43:01
否,查看是否存在窗口。我不知道它也适用于小部件,直到我得到这个答案。谢谢你的方式。 – madprogramer 2013-03-10 06:09:47