我需要能够检查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
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以通过使用标准的widget属性,或通过其他一些不那么"hacky"的解决方案来改进这些代码?
您可以尝试widget.winfo_ismapped():
检查窗口是否已创建.此方法检查Tkinter是否已创建与底层窗口系统中的窗口小部件对应的窗口(X窗口,Windows HWND等).
返回:如果已创建窗口,则返回true值.