我试图用箭头键移动一个对象,但当我启动应用程序时,什么也没发生。你知道怎么修吗?
@更新:我的矩形只向左和向右移动一次,但如果我使用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";
}
}