获取QPolygonF的顶点

时间:2013-01-27 20:35:52

标签: python qt pyqt4 qgraphicsview qgraphicsscene

我需要获取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。一些人可以帮助我。

1 个答案:

答案 0 :(得分:2)

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