PySide2 将鼠标事件传递给系统
PySide2 pass mouse events to system
我正在使用 QDialog
为屏幕捕获工具启用 select 屏幕区域的透明度。当用户在透明小部件内单击时,我想忽略鼠标事件,以便系统处理它。这可能吗?
我正在尝试在 Linux 上实现此目标。
我尝试过一些没有成功的事情:
QtWidgets.QWidget.setWindowFlags(QtCore.Qt.WindowTransparentForInput)
QtWidgets.QWidget.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
QtWidgets.QWidget.setMask(QtGui.QRegion(self.geometry()))
- 继承
mousePressEvent
并忽略事件
您必须使用标志 X11BypassWindowManagerHint
以便省略 WindowTransparentForInput
旁边的 window 管理器,以便系统知道它只需要显示 window 但不会通知您有关输入的信息。
w.setWindowFlags(w.windowFlags() |
QtCore.Qt.WindowTransparentForInput |
QtCore.Qt.X11BypassWindowManagerHint)
我正在使用 QDialog
为屏幕捕获工具启用 select 屏幕区域的透明度。当用户在透明小部件内单击时,我想忽略鼠标事件,以便系统处理它。这可能吗?
我正在尝试在 Linux 上实现此目标。
我尝试过一些没有成功的事情:
QtWidgets.QWidget.setWindowFlags(QtCore.Qt.WindowTransparentForInput)
QtWidgets.QWidget.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
QtWidgets.QWidget.setMask(QtGui.QRegion(self.geometry()))
- 继承
mousePressEvent
并忽略事件
您必须使用标志 X11BypassWindowManagerHint
以便省略 WindowTransparentForInput
旁边的 window 管理器,以便系统知道它只需要显示 window 但不会通知您有关输入的信息。
w.setWindowFlags(w.windowFlags() |
QtCore.Qt.WindowTransparentForInput |
QtCore.Qt.X11BypassWindowManagerHint)