试图关注QButtonGroup中的所有按钮

时间:2015-12-14 12:35:10

标签: c++ qt events event-handling keyboard-events

我正在努力关注QButtonGroup中的所有QPushButtons。我正在按钮组中添加的所有按钮上安装eventFilter,并在每个按钮上捕获Tab键按下事件并将焦点转移到下一个按钮。 我能够实现这一点,但问题是使用Shift + Tab向后移动焦点。我无法在eventFilter中捕获Shift + Tab事件。只有移位修改器按下才能正常工作

以下是代码:

bool Widget::eventFilter( QObject * inObject, QEvent * inEvent )
{
    if( inEvent->type() == QEvent::KeyPress )
    {
      QKeyEvent * keyEvent = static_cast< QKeyEvent * >( inEvent );
      if( keyEvent )
      {
         if( keyEvent->key() == Qt::Key_Tab && keyEvent->modifiers().testFlag( Qt::ShiftModifier ) )
         {
           //move focus backwards;
            return true;
         }
         return false;
      }
    }
}

请帮助!

1 个答案:

答案 0 :(得分:1)

你应该使用Qt :: Key_Backtab来实现shift + tab。 无需显式捕获2个修饰符。 它已在Qt

中准备好了