[ 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;
}
}
}