问:如何检查按下了哪个鼠标按钮

Ale*_*lex 7 c++ qt pyqt pyside

在尝试确定事件功能中按下了哪个鼠标按钮时,我在PySide中遇到了问题.我特别需要它来忽略鼠标移动事件,因为它在左右两个鼠标按钮上都有效.

如果按下场景上的右键,我想忽略鼠标移动事件.有帮助吗?

fas*_*ked 15

所有鼠标事件都有两种方法(buttonbuttons)来确定按下哪些按钮.但仅针对move事件,文档说:

请注意,对于鼠标移动事件,返回的值始终为Qt :: NoButton.

因为mouseMoveEvent你应该使用buttons方法.

void mouseMoveEvent(QMouseEvent *e)
{
    if(e->buttons() == Qt::RightButton)
        qDebug() << "Only right button";
}
Run Code Online (Sandbox Code Playgroud)

为了忽略移动事件,您eventFilter当然需要完成这项工作.


小智 8

QApplication::mouseButtons()将返回状态mouseButton,因此,您可以获取鼠标的状态KeyPressEvent.