我需要能够检查tkinter小部件是否可见(如果已调用其pack
或grid
方法)。
我目前正在做以下事情:
def is_visible(widget):
try:
widget.pack_info()
except tk.TclError:
# pack_info raises if pack hasn't been
# called yet.
return bool(widget.grid_info())
# grid_info returns {} if grid hasn't been
# called yet.
else:
return True
通过使用标准的widget属性,还是通过其他一些不那么“hacky”的解决方案,我有什么方法可以改进这段代码?
答案 0 :(得分:6)
您可以尝试使用widget.winfo_ismapped()
:
检查窗口是否已创建。此方法检查Tkinter 创建了一个与底层窗口小部件对应的窗口 窗口系统(X窗口,Windows HWND等)。
返回: 如果已创建窗口,则为true。