使用键盘qt移动对象



我试图用箭头键移动一个对象,但当我启动应用程序时,什么也没发生。你知道怎么修吗?

@更新:我的矩形只向左和向右移动一次,但如果我使用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;
}
}

提前谢谢!

您的问题似乎是,您获取父对象的位置,并在此基础上设置矩形的位置。这可能不是你想用这里的按键来做的。你应该这样设置位置:

rectangle->setPos(rectangle->x() - 10, rectangle->y());

您可以使用以下命令刷新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";
}
}

相关内容

  • 没有找到相关文章

最新更新