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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM