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()))