Qt QGraphicsView中的mapToScence使用方法
阿新 • • 發佈:2020-10-07
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()))