新的PyQt和我有问题旋转QGraphicsEllipseItem。我希望椭圆围绕椭圆的中心旋转,而不是用于定义椭圆的QRectF的拐角。我的代码看起来像这样(对不起,我编码它的电脑,没有上网,所以我的手在这里复制的相关部分):PyQt QGraphicsEllipseItem旋转偏移
self.scene = QtGui.QGraphicsScene()
self.ui.graphicsView.setScene(self.scene)
pen = QtGui.QPen(QColor(Qt.yellow))
# Draw first Ellipse
# This code correctly places a yellow ellipse centered at the scene 500,500 point
ellipse1 = QtGui.QGraphicsEllipseItem(0,0,100,10)
ellipse1.setPen(pen)
self.scene.addItem(ellipse1)
ellipse1.setPos(500, 500)
ellipse1.translate(-50, -5)
# Now, try to draw a rotated ellipse
# This code rotates the ellipse about the 0,0 location of the rectangle
# which is the scene 450, 495 point, not the center of the ellipse
ellipse2 = QtGui.QGraphicsEllipseItem(0,0,100,10)
ellipse2.setPen(pen)
self.scene.addItem(ellipse2)
ellipse2.setPos(500, 500)
ellipse2.translate(-50, -5)
ellipse2.rotate(45.0)
OK,这基本上是我所期待的。由于QGraphicsEllipseItem是从的QGraphicsItem衍生,我试着旋转之前设置的转换原点的则ellipse2:
ellipse2 = QtGui.QGraphicsEllipseItem(0,0,100,10)
ellipse2.setPen(pen)
self.scene.addItem(ellipse2)
ellipse2.setPos(500, 500)
ellipse2.translate(-50, -5)
ellipse2.setTransformOriginPoint(450, 495)
ellipse2.rotate(45.0)
这将导致错误“AttributeError的:‘QGraphicsEllipseItem’对象有没有属性‘setTransformOriginPoint’
显然,我做错了什么或者做了一个关于QGraphicsEllipseItem的错误假设,有些网站暗示我可能需要使用边界矩形才能进行旋转,但我不知道该怎么做。
如果有人能够让我看到旋转椭圆ab的正确方法在pyqt中取出它的中心,我将不胜感激!