1

我需要获取 QPolygonF 的顶点。这是我到目前为止的代码

class Example(QtGui.QGraphicsScene):
    def block(self): 
        self.bpoint1 = QtCore.QPointF(150 , 150)
        self.bpoint2 = QtCore.QPointF(200 , 150)
        self.bpoint3 = QtCore.QPointF(200 , 200)
        self.bpoint4 = QtCore.QPointF(150 , 200)
        self.bproto = QtGui.QPolygonF([self.bpoint1 , self.bpoint2 , self.bpoint3 , self.bpoint4])
        self.block = QtGui.QGraphicsPolygonItem()
        self.block.setPolygon(self.bproto)
        self.block.setFlag(QtGui.QGraphicsItem.ItemIsMovable)

我的块现在变成了可移动的,每次我都需要获取新的顶点,我的块被移动了。我该怎么做?我尝试了 self.block.boundingRect() ,但它给了我相同的 RectF 。有人能帮帮我吗。

4

1 回答 1

3

QPolygon只是派生自QVector,所以只需使用普通的数组访问器。但是它们将位于局部坐标中,因此需要将它们映射到场景坐标(我假设您的意思是“新顶点”)-使用block.mapToScene( block.polygon()[i] ).

于 2013-01-27T20:42:26.110 回答