天天看點

互動式QGraphicsView(平移/縮放/旋轉)簡述互動式 QGraphicsView

graphics view提供了一個平台用于大量自定義 2d 圖元的管理與互動架構包括一個事件傳播架構支援場景 scene 中的圖元 item 進行精确的雙精度互動功能。item 可以處理鍵盤事件、滑鼠按下、移動、釋放和輕按兩下事件同時也能跟蹤滑鼠移動。

和 google 地圖一樣在管理大量 item 的時候通常需要 view 具有互動平移/縮放/旋轉功能。

<a href="#%e7%ae%80%e8%bf%b0">簡述</a>

<a href="#%e4%ba%a4%e4%ba%92%e5%bc%8f-qgraphicsview">互動式 qgraphicsview</a>

<a href="#%e6%95%88%e6%9e%9c">效果</a>

<a href="#%e6%ba%90%e7%a0%81">源碼</a>

便于以後複用實作一個互動式 qgraphicsview - interactiveview。

主要功能包括

平移

方式一滑鼠左鍵按下然後移動

方式二按下上/下/左/右鍵分别向各個方向移動

縮放

方式一滑鼠滾輪向上滾動放大向下滾動縮小

方式二按加号鍵帶 shift進行放大按減号鍵縮小

旋轉按空格鍵逆時針旋轉Enter鍵順時針旋轉

互動式QGraphicsView(平移/縮放/旋轉)簡述互動式 QGraphicsView

interactive_view.h

平移速度預設為 1.0可以使用 settranslatespeed() 來改變。縮放的增量大小也可以使用 setzoomdelta() 改變。

interactive_view.cpp

這裡主要重寫了鍵盤及滑鼠事件具體說明請參考注釋

繼續閱讀