QT监测键盘事件 有延迟

QT监测键盘时间 有延迟 在第一次按下按键的时候会有延迟,想要像游戏一样把按键响应做的很丝滑该怎么做嘞

emmmmmm 我自己找到了一种解决办法


```c++
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    this->timer = new QTimer(this);
    timer->setSingleShot(false);
    timer->setInterval(10);
    connect(timer,SIGNAL(timeout()),this,SLOT(timerTimeOutSLot()));
    timer->start();
}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::keyPressEvent(QKeyEvent* event)
{
    int key = event->key();
    //timer->start();
    if(key == Qt::Key_A ){

        ui->label_A->setText("A");
        this->keyA = true;

    }else if(key == Qt::Key_S){

        ui->label_S->setText("S");
        this->keyS = true;

    }else if(key == Qt::Key_W){

        ui->label_w->setText("W");
        this->keyW = true;

    }else if(key == Qt::Key_D){
        ui->label_D->setText("D");

        this->keyD = true;

    }
}

void Dialog::keyReleaseEvent(QKeyEvent *event)
{
    int key = event->key();

    if(key == Qt::Key_A ){
        ui->label_A->setText("A");
        this->keyA = false;

    }else if(key == Qt::Key_S){

        ui->label_S->setText("S");
        this->keyS = false;

    }else if(key == Qt::Key_W){

        ui->label_w->setText("W");
        this->keyW = false;

    }else if(key == Qt::Key_D){
        ui->label_D->setText("D");

        this->keyD = false;

    }
}

void Dialog::timerTimeOutSLot()
{
    if(keyA){
        ui->pushButton->move(ui->pushButton->x()-2,ui->pushButton->y());
    }
    if(keyS){
        ui->pushButton->move(ui->pushButton->x(),ui->pushButton->y()+2);
    }
    if(keyW){
        ui->pushButton->move(ui->pushButton->x(),ui->pushButton->y()-2);
    }
    if(keyD){
        ui->pushButton->move(ui->pushButton->x()+2,ui->pushButton->y());
    }
}

//void Dialog::btnClickedSlot()
//{
//    qDebug()<<"001";
//}


```