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鍵順時針旋轉
interactive_view.h
平移速度預設為 1.0可以使用 settranslatespeed() 來改變。縮放的增量大小也可以使用 setzoomdelta() 改變。
interactive_view.cpp
這裡主要重寫了鍵盤及滑鼠事件具體說明請參考注釋