美文网首页
Qt 按键字符串化

Qt 按键字符串化

作者: c之气三段 | 来源:发表于2021-11-18 18:18 被阅读0次
//热键编辑操作
bool SettingsConfigDialog::eventFilter(QObject* watched, QEvent* event)
{
    Q_UNUSED(watched);
    if(event->type() == QEvent::KeyPress)
    {
        QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
        if (keyEvent->key() == Qt::Key_Backspace)
        {
            return false;
        }
        if(keyEvent->isAutoRepeat())return true;
        QString context = ui->lineEdit_currentKey->text();
        if(!context.isEmpty()&&context.at(context.size()-1)!="+")
        {
            context.append("+");
        }
        if(keyEvent->modifiers() == Qt::ControlModifier)
        {
            context.append("Ctrl");
        }
        else if (keyEvent->modifiers() == Qt::ShiftModifier)
        {
            context.append("Shift");
        }
        else if (keyEvent->modifiers() == Qt::AltModifier)
        {
            context.append("Alt");
        }
        else if (keyEvent->key() == Qt::Key_Up)
        {
            context.append("Up");
        }
        else if (keyEvent->key() == Qt::Key_Down)
        {
            context.append("Down");
        }
        else if (keyEvent->key() == Qt::Key_Left)
        {
            context.append("Left");
        }
        else if (keyEvent->key() == Qt::Key_Right)
        {
            context.append("Right");
        }
        else if (keyEvent->key() == Qt::Key_Tab)
        {
            context.append("Tab");
        }
        else if (keyEvent->key() == Qt::Key_CapsLock)
        {
            context.append("CapsLock");
        }
        else if (keyEvent->key() == Qt::Key_Space)
        {
            context.append("Space");
        }
        else if (keyEvent->key() == Qt::Key_Return)
        {
            context.append("Enter");
        }
        else if (keyEvent->key() == Qt::Key_Insert)
        {
            context.append("Insert");
        }
        else if (keyEvent->key() == Qt::Key_Delete)
        {
            context.append("Delete");
        }
        else if (keyEvent->key() == Qt::Key_Home)
        {
            context.append("Home");
        }
        else if (keyEvent->key() == Qt::Key_End)
        {
            context.append("End");
        }
        else if (keyEvent->key() == Qt::Key_PageUp)
        {
            context.append("PgUp");
        }
        else if (keyEvent->key() == Qt::Key_PageDown)
        {
            context.append("PgDn");
        }
        else if (keyEvent->key() == Qt::Key_F1)
        {
            context.append("F1");
        }
        else if (keyEvent->key() == Qt::Key_F2)
        {
            context.append("F2");
        }
        else if (keyEvent->key() == Qt::Key_F3)
        {
            context.append("F3");
        }
        else if (keyEvent->key() == Qt::Key_F4)
        {
            context.append("F4");
        }
        else if (keyEvent->key() == Qt::Key_F5)
        {
            context.append("F5");
        }
        else if (keyEvent->key() == Qt::Key_F6)
        {
            context.append("F6");
        }
        else if (keyEvent->key() == Qt::Key_F7)
        {
            context.append("F7");
        }
        else if (keyEvent->key() == Qt::Key_F8)
        {
            context.append("F8");
        }
        else if (keyEvent->key() == Qt::Key_F9)
        {
            context.append("F9");
        }
        else if (keyEvent->key() == Qt::Key_F10)
        {
            context.append("F10");
        }
        else if (keyEvent->key() == Qt::Key_F11)
        {
            context.append("F11");
        }
        else if (keyEvent->key() == Qt::Key_F12)
        {
            context.append("F12");
        }
        else
        {
            context.append(keyEvent->text().toUpper());
        }
        ui->lineEdit_currentKey->setText(context);
        return true;
    }
    return false;
}

相关文章

网友评论

      本文标题:Qt 按键字符串化

      本文链接:https://www.haomeiwen.com/subject/jkretrtx.html