gpt4 book ai didi

python - PySide2 将鼠标事件传递给系统

转载 作者:行者123 更新时间:2023-12-01 08:55:01 31 4
gpt4 key购买 nike

我正在使用启用透明度的QDialog来为屏幕捕获工具选择屏幕区域。当用户在透明小部件内部单击时,我想忽略鼠标事件,以便系统处理它。这可能吗?

我正在尝试在 Linux 上实现这一目标。

我尝试过一些但没有成功的事情:

  • QtWidgets.QWidget.setWindowFlags(QtCore.Qt.WindowTransparentForInput)
  • QtWidgets.QWidget.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
  • QtWidgets.QWidget.setMask(QtGui.QRegion(self.geometry()))
  • 子类化 mousePressEvent 并忽略该事件

最佳答案

您必须使用标志X11BypassWindowManagerHint,以便省略WindowTransparentForInput旁边的窗口管理器,以便系统知道它只需显示窗口,但不显示通知您有关输入的信息。

w.setWindowFlags(w.windowFlags() | 
QtCore.Qt.WindowTransparentForInput |
QtCore.Qt.X11BypassWindowManagerHint)

关于python - PySide2 将鼠标事件传递给系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52827296/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com