我可以ISVISIBLE()检查的部件是可见的一切,但是当标志QTool设置,有时会发生小部件是在另一个插件的堆栈,使用户无法看到它。有没有什么给我这个信息的方法?
至于乔治·
如何检查visibleRegion()方法?如果该项目被覆盖,它会返回一个空QRegion。您可以检查的isEmpty()
您也可以使用提高带来的小部件上()
我在Windows上也有类似的问题,PyQt5。 visibleRegion()
或isVisible()
表明插件Qt的方法是可见的,而实际上并非如此。这工作对我来说唯一的解决办法:
import win32gui, win32con # from pywin32 package
def is_widget_obscured(widget):
hwnd = widget.winId()
hwnd_above = win32gui.GetWindow(hwnd, win32con.GW_HWNDPREV)
return hwnd_above != 0
文档GetWindow()
:https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getwindow