[ Qt 프로그래밍 ]QT 2D 게임 키보드 입력 예제

Widget::Widget(QWidget *parent) :

    QWidget(parent),

    ui(new Ui::Widget)

{

QTimer* timer=new QTimer(this);

timer->setSingleShot(false);

timer->setInterval(50);

connect(timer,SIGNAL(timeout()),this,SLOT(keyFunc()));

timer->start();

}

void Widget::keyFunc()

{

if(keyLeft==true&&keyUp==true)// left up

       {

}

else if(keyRight==true&&keyUp==true)// left up

{

}

else if(keyLeft==true&&keyDown==true)// left up

       {

}

else if(keyRight==true&&keyDown==true)// left up

       {

}

else if(keyLeft==true)// left up

       {

}

else if(keyRight==true)// left up

      {

}

else if(keyUp==true)// left up

       {

}

else if(keyDown==true)// left up

       {

}

}

void Widget::keyPressEvent(QKeyEvent *e)

{

    if(e->key()==Qt::Key_Left)

    {

        keyLeft=true;

    }

    else if(e->key()==Qt::Key_Right)

    {

        keyRight=true;

    }

    else if(e->key()==Qt::Key_Up)

    {

        keyUp=true;

    }

    else if(e->key()==Qt::Key_Down)

    {

        keyDown=true;

    }

 


}

void Widget::keyReleaseEvent(QKeyEvent *e)

{

    if(e->isAutoRepeat()==false)

    {

        if(e->key()==Qt::Key_Left)

        {

            keyLeft=false;

        }

        else if(e->key()==Qt::Key_Right)

        {

            keyRight=false;

        }

        else if(e->key()==Qt::Key_Up)

        {

            keyUp=false;

        }

        else if(e->key()==Qt::Key_Down)

        {

            keyDown=false;

        }

    }

 

}