带返回键的Qt Tab顺序

时间:2015-04-24 16:24:10

标签: c++ qt

我有一个包含多个LineEdits和其他元素的表单,并希望通过按返回键从一个跳转到下一个。 我发现Return键而不是/ tab对tab键更加用户友好。

如果我使用returnPressed()setFocus(),我可能会这样做,但我希望有一个更好的解决方案。

  1. 有没有办法修改内置的Tab键顺序也可以使用 返回?

  2. 如果没有,完成上述工作的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

您可能正在寻找事件处理程序。 (QEvent

doc

中的示例
bool MyWidget::event(QEvent *event)
{
    if (event->type() == QEvent::KeyPress) {
    QKeyEvent *ke = static_cast<QKeyEvent *>(event);
    if (ke->key() == Qt::Key_Tab) {
        // special tab handling here
        return true;
    }
    } else if (event->type() == MyCustomEventType) {
    MyCustomEvent *myEvent = static_cast<MyCustomEvent *>(event);
    // custom event handling here
    return true;
    }

    return QWidget::event(event);
}

任何按键都可轻松调节。

例如,如果按下返回,则模拟制表键按下事件。

答案 1 :(得分:0)

如前所述,覆盖QWidget::keyPressEvent

效率更高

某些代码:

protected:
    void keyPressEvent(QKeyEvent *event) override;
  void MyWidget::keyPressEvent(QKeyEvent *event){
    if(event->key()==Qt::Key_Return){
      this->focusNextChild();
    }
  }