我正在寻找一种在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}
{}