我需要获取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。一些人可以帮助我。
答案 0 :(得分:2)
QPolygon
只是派生自QVector
,所以只需使用普通的数组访问器即可。但它们将位于局部坐标中,因此需要将它们映射到场景坐标(我假设你的意思是“新顶点”) - 使用block.mapToScene( block.polygon()[i] )
。