3

用户可以通过键“Tab”或箭头键“<-”和“->”逐步浏览 QtGUI 的小部件。

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

4

3 回答 3

3

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

bool MyWidget::keyPressEvent(QKeyEvent *keyEvent)
{
    if (keyEvent->key() == Qt::Key_Left || keyEvent->key() == Qt::Key_Right) {
        // Do nothing
    } else {
        QWidget::keyPressEvent(keyEvent);
    }
}
于 2014-03-08T02:34:11.903 回答
1

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

于 2014-03-07T20:46:32.857 回答
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);
于 2015-01-23T13:41:11.573 回答