我需要获取 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)
我的 block 现在变得可移动了,每次移动我的 block 时我都需要获取新的顶点。我该怎么做?我尝试了 self.block.boundingRect() ,但它给了我相同的 RectF 。有人可以帮我吗?
最佳答案
QPolygon
只是派生自 QVector
,因此只需使用普通的数组访问器即可。但它们将位于本地坐标中,因此需要将它们映射到场景坐标(我假设这就是您所说的“新顶点”) - 使用 block.mapToScene( block.polygon()[i] )
.
关于python - 获取 QPolygonF 的顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551962/