MousePressEvent, position offset in QGraphicsView

核能气质少年 提交于 2019-12-01 04:52:49

Reimplement mousePressEvent on the scene, rather than the view.

That way, the event argument will be a QGraphicsSceneMouseEvent, which has several useful additional functions - including scenePos, which does exactly what you want:

class graphicsScene(QtGui.QGraphicsScene):
    def __init__ (self, parent=None):
        super(graphicsScene, self).__init__ (parent)

    def mousePressEvent(self, event):
        super(graphicsScene, self).mousePressEvent(event)
        item = graphicsItem()
        position = QtCore.QPointF(event.scenePos()) - item.rectF.center()
        item.setPos(position.x() , position.y())
        self.addItem(item)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!