使用键盘qt移动对象
Moving object using keyboard qt
我正在尝试使用箭头键移动对象,但是当我启动该应用程序时,没有任何反应。您知道如何解决它吗?
@Update:我的矩形只向左和向右移动一次,但如果我使用 qDebug,它会识别我点击左或右的所有时间,有什么想法吗?
void MouvementJoueur::keyPressEvent(QKeyEvent *e)
{
switch ( e->key() )
{
case Qt::Key_Left:
rectangle->setPos(x()-10,y());
qDebug() << "You pressed the Key left";
break;
case Qt::Key_Right:
rectangle->setPos(x()+10,y());
qDebug() << "You pressed the Key right";
break;
}
}
提前致谢!
您可以使用以下命令刷新 GUI
view->processEvents();
你可以调试它。它检测是否有按键按下。
void MouvementJoueur::keyPressEvent(QKeyEvent *e)
{
if(e->key() == Qt::Key_Left)
{
rectangle->setPos(x()-10,y());
qDebug() << "You pressed the Key x";
}
if(e->key() == Qt::Key_Right)
{
rectangle->setPos(x()+10,y());
qDebug() << "You pressed the Key x";
}
}
您的问题似乎是,您占据了父级的位置,并基于此设置了矩形的位置。这可能不是您想在此处使用按键进行的操作。您应该这样设置位置:
rectangle->setPos(rectangle->x() - 10, rectangle->y());
我正在尝试使用箭头键移动对象,但是当我启动该应用程序时,没有任何反应。您知道如何解决它吗?
@Update:我的矩形只向左和向右移动一次,但如果我使用 qDebug,它会识别我点击左或右的所有时间,有什么想法吗?
void MouvementJoueur::keyPressEvent(QKeyEvent *e)
{
switch ( e->key() )
{
case Qt::Key_Left:
rectangle->setPos(x()-10,y());
qDebug() << "You pressed the Key left";
break;
case Qt::Key_Right:
rectangle->setPos(x()+10,y());
qDebug() << "You pressed the Key right";
break;
}
}
提前致谢!
您可以使用以下命令刷新 GUI
view->processEvents();
你可以调试它。它检测是否有按键按下。
void MouvementJoueur::keyPressEvent(QKeyEvent *e)
{
if(e->key() == Qt::Key_Left)
{
rectangle->setPos(x()-10,y());
qDebug() << "You pressed the Key x";
}
if(e->key() == Qt::Key_Right)
{
rectangle->setPos(x()+10,y());
qDebug() << "You pressed the Key x";
}
}
您的问题似乎是,您占据了父级的位置,并基于此设置了矩形的位置。这可能不是您想在此处使用按键进行的操作。您应该这样设置位置:
rectangle->setPos(rectangle->x() - 10, rectangle->y());