Qt Creator - 删除所有UI键盘快捷键(QButton,QSlider等)

时间:2014-10-06 06:11:57

标签: c++ qt keyboard shortcut keyboard-events

我想知道是否有一种方法可以从UI中删除所有键盘快捷键,因此我可以使用事件过滤器来获取关键命令。

目前,我在我的eventFilter()函数中有这个,它可以完成这项工作,但它也会影响我在那里的QSliders,QLineEdits和QButton - 我不想这样做。

bool LinkControl::eventFilter(QObject *o, QEvent *e)
{
    QKeyEvent *keyEvent = NULL;
    // qDebug() << "TYPE: " << e->type();
    switch(e->type())
    {
    case 51:
        // qDebug() << this->overrideControl;
        if(this->overrideControl == true)
        {
            keyEvent = static_cast<QKeyEvent*>(e);
            // this->handleKeyboardInput(true, keyEvent->key());
            // emit handleInput(true, keyEvent->key());
            this->handleKeyboardInput(true, keyEvent->key());
            // qDebug() << "PRESS: " << keyEvent->key();
        }
        this->overrideControl = !this->overrideControl;
        return true;
        break;
    case QEvent::KeyRelease:
        keyEvent = static_cast<QKeyEvent*>(e);
        // this->handleKeyboardInput(false, keyEvent->key());
        // emit handleInput(false, keyEvent->key());
        this->handleKeyboardInput(false, keyEvent->key());
        // qDebug() << "RELEASE: " << keyEvent->key();
        return true;
        break;
    default:
        return QMainWindow::eventFilter(o, e);
    }
}

例如,在我的handleKeyboardInput函数中,我有向上箭头键增加一个值,它会这样做,但如果它被选中,它也会移动一个QSlider。

谢谢。

0 个答案:

没有答案