今天学有所成,赶紧记下今天的成果
之前三篇文章分别演示了空间的大小改变,移动,及颜色变化。在后续研究旋转的过程中即为艰难
如果你是使用pyqt4,那么使用QGraphicsItemAnimation便可以轻松达到旋转的效果,这里不再详述
可惜到了pyqt5
于是查阅各种英文资料,我分别尝试了QGraphicsRotation,QGraphicsTransform,QTransform效果都不太理想,QTransform是可以实现的,但是太复杂
最后我找到了一种极为简单的方法就是在使用QGraphicsView的各种item时,可以直接setRotation让对象旋转起来,下面来看看代码,这里直接在对象上写一个动画:
class Ball(QObject): def __init__(self): super().__init__() pixmap = QPixmap("../star.png") scaledPixmap = pixmap.scaled(50, 55) self.animation() self.pixmap_item = QGraphicsPixmapItem(scaledPixmap) self.pixmap_item.setTransformOriginPoint(25, 27.5) # 设置中心为旋转 self._set_pos(QPointF(5, 30)) # 设置图标的初始位置 def _set_pos(self, pos): self.pixmap_item.setPos(pos) def _set_rotation(self, angle): self.pixmap_item.setRotation(angle.x()) #