Клавиши порядка вкладок Qt

Пользователь может просматривать виджеты QtGUI с помощью клавиши "Tab" или клавиш со стрелками "<-" и "->".

Кто-нибудь знает, как для этого отключить клавиши со стрелками? Мне нужны клавиши со стрелками для чего-то еще.

3 ответа

Решение

Вам нужно будет переопределить соответствующее событие в вашем собственном подклассе QWidget следующим образом:

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

Я могу использовать 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);

Просто переопределите событие () или keyPressEvent() / keyReleaseEvent() главного окна. В переопределенных методах вы можете разместить желаемые действия.

Другие вопросы по тегам