Клавиши порядка вкладок 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() главного окна. В переопределенных методах вы можете разместить желаемые действия.