Qt Tab 键顺序键

问题描述 投票:0回答:3

用户可以通过“Tab”键或方向键“<-" and "->”逐步浏览 QtGUI 的小部件。

有人知道如何为此目的禁用箭头键吗?我需要方向键来做其他事情。

c++ qt qwidget qtgui qevent
3个回答
4
投票

您需要在您自己的 QWidget 子类中重新实现对应的事件,如下所示:

bool MyWidget::keyPressEvent(QKeyEvent *keyEvent)
{
    if (keyEvent->key() == Qt::Key_Left || keyEvent->key() == Qt::Key_Right) {
        // Do nothing
    } else {
        QWidget::keyPressEvent(keyEvent);
    }
}

1
投票

只需重新实现主窗口的 event() 或 keyPressEvent() / keyReleaseEvent() 即可。在重新实现的方法中,您可以放置所需的操作。


1
投票

我可以使用 QAction 来达到此目的。所以你不需要子类化。

QTabBar *tabBar;
........................
QAction* pLeftArrowAction = new QAction(this);
pLeftArrowAction->setShortcut(Qt::Key_Left);
QAction* pRightArrowAction = new QAction(this);
pRightArrowAction->setShortcut(Qt::Key_Right);
tabBar->addActions(QList<QAction*>() << pLeftArrowAction << pRightArrowAction);
© www.soinside.com 2019 - 2024. All rights reserved.