Qt的检查,如果QTool部件在顶部(用户可见)

问题描述 投票:2回答:2

我可以ISVISIBLE()检查的部件是可见的一切,但是当标志QTool设置,有时会发生小部件是在另一个插件的堆栈,使用户无法看到它。有没有什么给我这个信息的方法?

至于乔治·

qt qwidget
2个回答
1
投票

如何检查visibleRegion()方法?如果该项目被覆盖,它会返回一个空QRegion。您可以检查的isEmpty()

您也可以使用提高带来的小部件上()


0
投票

我在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

© www.soinside.com 2019 - 2024. All rights reserved.