我想知道如何区分滚轮点击事件和鼠标按下事件。因为我想在pyside中为这两个事件做不同的处理。目前,每次单击滚轮按钮时,事件都会被mousepressevent捕获。谁能解释一下?
编辑:我想在子类中实现它 qglwidget类
答案 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,您只需要比较button
中event
的{{1}}属性,看看它是mousePressEvent
,Qt.LeftButton
还是Qt.RightButton
{1}}。希望有所帮助。