在qt5中
QGraphicsItem::rotate已经不再使用,而是使用setRotation。
但setRotation设置围绕Z轴的顺时针旋转角度(以度为单位),比如setRotation(90)是旋转90度,但setRotaton不能持续旋转,比如我按旋转按钮时,第一次旋转90度正常,第二次就不动了。
QGraphicsItem还提供了另外一个方法rotation(),返回围绕Z轴的顺时针旋转(以度为单位)。默认值为0(即项目不旋转)。
可以使用这个方法获取到旋转的角度,然后在这个基础上加90度。
case Qt::Key_Up:
//rotate(90);
{
qDebug() << rotation();
qreal oldRotate = rotation();
if (oldRotate >= 360) {
oldRotate = 0;
}
setRotation(oldRotate + 90);
qDebug() << rotation();
if (isColliding()) {
setRotation(oldRotate - 90);
}
break;
}