如何区分滚轮按钮单击事件和鼠标按下事件?

Joh*_*lin 1 qt event-handling pyside

我想知道如何区分滚轮单击事件和鼠标按下事件。因为我想在 pyside 中对这两个事件进行不同的处理。目前,每次我单击滚轮按钮时,该事件都会被 mousepressevent 捕获。谁能解释一下吗?

编辑:我想在 qglwidget 类的子类中实现它

vic*_*ann 6

从其名称来看,mousePressEvent负责鼠标点击,而 则wheelEvent仅负责滚动。不会wheelEvent捕获滚轮按钮的点击。这就是 Qt 的 API 在鼠标事件处理方面的设计方式。

为了区分按下的是哪个鼠标按钮(右、滚轮或左),请使用button 的属性QMouseEvent

这就是使用 C++ 的代码的样子(我想很容易将其翻译为pyside

void GLWidget::mousePressEvent(QMouseEvent *event) // redefine the mouse event
{
switch( event->button() ) {
case Qt::LeftButton:
    // do stuff for left button pressed
    break;
case Qt::MiddleButton:
    // do stuff for wheel button pressed
    break;
// ...
}
}
Run Code Online (Sandbox Code Playgroud)

所以,对于 pyside 来说,只需比较inbutton的属性,看看是,还是。希望有帮助。eventmousePressEventQt.LeftButtonQt.RightButtonQt.MidButton