<p>每当我尝试在场景中移动矩形时,矩形的原点似乎会更改为更新位置之前矩形所在的位置</p>
<p>因此,如果我在(0,0)处创建矩形并使用rect.setRect(x,y)移动它,那么返回位置将产生(0,0)而不是(x,y)</p>
<p>如果使用鼠标在Qgraphicscene中移动它,它将返回正确的(x,y)</p>
<p>我用于创建矩形的代码如下所示:</p>
<pre><code>class placeableObject:
def __init__(self, index, scene, QPen, QBrush, width=100, height=100):
"""Parent class for placeable objects"""
self.width = float(width)
self.height = float(height)
self.index = index
self.rect = scene.addRect(0, 0, int(width), int(height), QPen, QBrush)
self.rect.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
</code></pre>
<p>要移动此矩形,我有以下嵌入函数和返回位置的函数:</p>
<pre><code>def getPos(self):
"""Returns a list with the x,y position of the object in the scene"""
return [self.rect.scenePos().x(), self.rect.scenePos().y()]
def move(self, x, y):
"""Moves the object in the editor view to coordinatex x,y"""
self.rect.setRect(x, y, self.width, self.height)
</code></pre>