Клавиши порядка табуляции Qt

Пользователь может перемещаться по виджетам QtGUI с помощью клавиши «Tab» или клавиш со стрелками «‹-» и «->».

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


person MichaelXanadu    schedule 07.03.2014    source источник


Ответы (3)


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

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

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

person yshurik    schedule 07.03.2014

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