mapToScence
这段时间在学习PyQt,因为要使用QGraphView中的mapToScene的方法,本人百度+谷歌了一下午没有找到合适的解释说明。
先说一下要完成的任务,在一个granphics中通过双击鼠标的方式生成一个节点,但是刚开始只实现了在固定地点生成节点,这明显很鸡肋没有啥实用价值
想实现在鼠标双击的地方生成一个节点,这个坐标系的真的把我给搞晕了,讲一下我的思路吧
- 要知道正常的坐标系都是从屏幕左上角开始的,即左上角为(0,0),但是对于graphicsview来说,坐标系则是从中间开始的,向下为y正方向,向右为x正方向
- 从设置的mouseDoubleClickEvent中获得event.pos()的位置只是相对于这个widget来说,即坐标中心在左上角,但是怎么转到对应的graphicsview就有意思了
- 首先调用mapFromParent函数对上面的Qpoint进行处理,然后再通过mapToScene函数获得你在graphicsview中的位置
- mapToScene主要解决了怎么从父widget中得到相应的坐标,然后通过mapToScene函数进行转换,即可得到相应的坐标
- 简单来说这个函数就是为了将之前(父widget)的坐标转换到目前的坐标系中去
point = self.mapToScene(self.mapFromParent(QMouseEvent.pos()))