C++ Qt WheelEvent,如何获取车轮是否被按下?

C++ Qt WheelEvent,如何获取车轮是否被按下?,c++,qt,C++,Qt,我正在开发一个Qt应用程序,我知道有一个wheelEvent来获取轮子的状态,但我找不到如何知道轮子是否被按下。 谢谢 查看QMouseEvent的文档。捕捉该事件并注意第三个鼠标按钮 如果您对某个事件不感兴趣,但对按钮的状态感兴趣,那么您也可能对QGUI应用程序::mouseButtons()感兴趣。控制盘事件设置了按钮。它还设置按下的键盘修改键(例如,SHIFT,CRTL) 。它们被设置为标志,即Qt::LeftButton | Qt::RightButton 编辑: 默认情况下,控制盘与中

我正在开发一个Qt应用程序,我知道有一个wheelEvent来获取轮子的状态,但我找不到如何知道轮子是否被按下。
谢谢

查看QMouseEvent的文档。捕捉该事件并注意第三个鼠标按钮


如果您对某个事件不感兴趣,但对按钮的状态感兴趣,那么您也可能对QGUI应用程序::mouseButtons()感兴趣。

控制盘事件设置了按钮。它还设置按下的键盘修改键(例如,
SHIFT
CRTL

。它们被设置为标志,即
Qt::LeftButton | Qt::RightButton

编辑:

默认情况下,控制盘与中间按钮关联。在控制盘事件中,控制盘可以在没有关联按钮的情况下移动。例如,在chrome浏览器上移动滚轮滚动。按下控制盘将改变屏幕上的光标以及控制盘的行为(试试看)

如果您有一个带有滚轮和中间按钮的怪异鼠标:

  • 按下中间按钮将生成一个带有
    Qt::MiddleButton
  • 按下控制盘按钮将生成带有
    Qt::MiddleButton
    WheelEvent

车轮按压应该是第三次按钮按压……哦,好吧,我以为这是由车轮事件处理的,谢谢
Qt::MiddleButton
返回??我不理解这个表达式:<代码>事件>按钮()和&::MIDLYButoS< /COD>,我不习惯C++,…<代码> QT::MIDLYBUT/<代码>是一个值。但是我犯了一个错误,它是
&
而不是
&&
是的,我看到它的值是4,但是为什么要将它用作布尔值呢?它总是返回真的,你的答案是有效的,但是如果它是这样的:<代码>如果(事件->按钮= qt::MIDLeButle)它将是逻辑上的C++中的两种工作方式。但我用了一个更明确的版本进行编辑。我只是不明白如果按下或不按下中间按钮,返回按钮状态和等于4的
Qt::MiddleButton
如何返回布尔值
void MyWidget::wheelEvent ( QWheelEvent * event )
{
  if(event->buttons() & Qt::MiddleButton != 0)
  {
    //the mid button is being pressed. handle.
  }
}