检查tkinter小部件是否可见

时间:2017-09-23 07:31:03

标签: python tkinter

我需要能够检查tkinter小部件是否可见(如果已调用其packgrid方法)。

我目前正在做以下事情:

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”的解决方案,我有什么方法可以改进这段代码?

1 个答案:

答案 0 :(得分:6)

您可以尝试使用widget.winfo_ismapped()

  

检查窗口是否已创建。此方法检查Tkinter   创建了一个与底层窗口小部件对应的窗口   窗口系统(X窗口,Windows HWND等)。

     

返回:       如果已创建窗口,则为true。