1. 程式人生 > 實用技巧 >Qt QGraphicsView中的mapToScence使用方法

Qt QGraphicsView中的mapToScence使用方法

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