如何区分滚轮按钮点击事件和鼠标按键事件?

时间:2016-03-19 09:31:41

标签: qt event-handling pyside

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

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

1 个答案:

答案 0 :(得分:2)

从名称开始,mousePressEvent负责鼠标点击,wheelEvent仅用于滚动。 wheelEvent不会抓住滚轮按钮点击。这是Qt的API在鼠标事件处理方面的设计方式。

为了分开按下哪个鼠标按钮(向右,向左或向左),请使用button property of 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;
// ...
}
}

因此,对于pyside,您只需要比较buttonevent的{​​{1}}属性,看看它是mousePressEventQt.LeftButton还是Qt.RightButton {1}}。希望有所帮助。