我正在开发一个Qt应用程序,我知道可以使用wheelEvent获取鼠标滚轮的状态,但是我不知道如何判断滚轮是否按下。谢谢!
滚轮事件设置正在按下的按钮。它还设置了按下的键盘修饰键(例如SHIFT
,CRTL
)。
void MyWidget::wheelEvent ( QWheelEvent * event )
{
if(event->buttons() & Qt::MiddleButton != 0)
{
//the mid button is being pressed. handle.
}
}
这里是可能的按钮列表。它们被设置为标志,即Qt::LeftButton | Qt::RightButton
编辑:
默认情况下,滚轮与中间按钮相关联。滚轮可以在没有关联按钮的情况下移动。例如,在Chrome浏览器上移动滚轮会滚动页面。按下滚轮将改变屏幕上的光标以及滚轮的行为(试一下)。
如果你有一个带有滚轮和中间按钮的奇怪鼠标:
Qt::MiddleButton
的MouseEvent
Qt::MiddleButton
的WheelEvent
。if(event->button == Qt::MiddleButton)
,那就更合理了。 - Othman Benchekrounevent->buttons()
返回按钮状态和Qt::MiddleButton
等于4如何能返回中间按钮是否按下的布尔值。 - Othman Benchekroun查看QMouseEvent的文档。捕获该事件并注意第三个鼠标按钮。
如果您对事件不感兴趣,但对按钮状态感兴趣,您也可能会对QGuiApplication::mouseButtons()感兴趣。