11

これで、次の方法でウィンドウが存在するかどうかを確認できることがわかりました。

x.winfo_exists()

これはブール値を返します。私はこれを検索しましたが、探しているものを正確に見つけることができませんでした。具体的には、ボタン、ラベル、リストボックス、スライダーなどの存在を確認する必要があります。

4

2 に答える 2

25

winfo_existsウィジェットを破棄していない限り、1を返します。破棄した場合は0を返します。このメソッドは、Tkルートまたはトップレベルだけでなく、任意のウィジェットクラスで呼び出すことができます。または、ウィジェットのすべての子を次のように取得することもできます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()
[]
于 2013-03-09T14:44:56.027 に答える
0

タイプを印刷することもできます。タイプ(ラベル)。これは、存在を提供するだけでなく、エラーなしで「NoneType」が発生しているかどうかを確認するのにも役立ちます。type() は、インスタンスがあるかどうか、またはプログラムが実行しているか、要求していると思うものにアイテムを返すかについての貴重な手がかりを提供できる他のタイプがあるかどうかを教えてくれます! object.winfo_exists() と object.winfo_children は固有のものであり、オブジェクトがタイプ「インスタンス」でない場合はエラーがスローされます。

于 2016-11-27T14:25:06.000 に答える