2016-12-27 24 views
1

私は現在目に見えるラベルをPython Tkinterグリッドで検出する方法を探しています。私が話しているのはラベルがグリッドマネージャにあるかどうか確認してください

L=Label(someFrame) 
L1=Label(someFrame) 
L.grid(row=1,column=1) 
L1.grid(row=2,column=1) 
L1.grid_remove() 

L1とLを区別して削除する方法はありますか?私はTkinterで自分でリストを管理するのではなく、何かを探しています。おそらくグリッドマネージャにアクセスし、ラベルがあるかどうかを確認しますか?

+0

私の知る限り、ウィジェットは知りません。 –

答えて

2

grid_info()で確認できます。ウィジェットがグリッドにない場合、grid_info()は空白の値になり、ブール値はFalseになります。

例:

import tkinter as tk 

root = tk.Tk() 
label1 = tk.Label(root) 
label1.grid(row=0, column=0) 
label2 = tk.Label(root) 
label2.grid(row=1, column=1) 
print(label1.grid_info()) 
print(label2.grid_info()) 
label2.grid_remove() 
print(label1.grid_info()) 
print(label2.grid_info()) 

出力:彼らがどこにある場合と

{'rowspan': 1, 'ipadx': 0, 'column': 0, 'sticky': '', 'pady': 0, 'columnspan': 1, 'in': <tkinter.Tk object at 0x0000000003411C88>, 'row': 0, 'ipady': 0, 'padx': 0} 
{'rowspan': 1, 'ipadx': 0, 'column': 1, 'sticky': '', 'pady': 0, 'columnspan': 1, 'in': <tkinter.Tk object at 0x0000000003411C88>, 'row': 1, 'ipady': 0, 'padx': 0} 
{'rowspan': 1, 'ipadx': 0, 'column': 0, 'sticky': '', 'pady': 0, 'columnspan': 1, 'in': <tkinter.Tk object at 0x0000000003411C88>, 'row': 0, 'ipady': 0, 'padx': 0} 
{} 
+1

パーフェクト - シンプルでクリーンな、私が必要なもの。 – kabanus

関連する問題