如何设置QWindow对鼠标和其他事件透明?



我正在构建一个覆盖来显示OBS流在全屏应用程序上的统计信息。通过将窗口标志设置为:WindowStaysOnTopHint | FramelessWindowHint X11BypassWindowManagerHint)

,我已经设法实现了它的视觉部分。问题是该窗口响应鼠标(当鼠标悬停时将光标更改为系统1)并阻止单击操作。我发现WA_TransparentForMouseEventsWA_TranslucentBackground会有帮助,但它没有。

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import Qt
app = QApplication([])
window = QWidget()
window.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint )#| Qt.X11BypassWindowManagerHint)
window.setAttribute(Qt.WA_TransparentForMouseEvents,True)
window.setAttribute(Qt.WA_TranslucentBackground,True)
window.show()
app.exec()

如何使qtwwindow对鼠标和其他事件透明?在其他作品中充当适当的覆盖。

需要设置的标志是:

Qt::WindowTransparentForInput

通知窗口系统此窗口仅用于输出(显示某些内容)而不接受输入。因此,输入事件应该像不存在一样通过。

https://doc.qt.io/qt-5/qt.html WindowType-enum

相关内容

最新更新