在Qt Graphics View框架中,主要有三種對象:場景(scene)、視圖(view)、圖元(item);
場景(scene)存儲了圖形數據,它通過視圖(view)以多種形式表現出來,每個圖元(item)可以單獨進行控制。
Graphics View框架是Qt4.2引入的。我一開始學習就是從Qt4着手的。所以之前是什么,我就不了解了。
Graphics View框架中包括三個主要的類:QGaphicsScene、QGraphicsView、QGraphItem,分別是場景、視圖和圖元。
QGaphicsScene場景類的功能:
提供管理大量圖元的快速接口;
傳播事件給場景中的每個圖元;
管理圖元狀態,如選擇和焦點處理;
提供無變換的繪制功能,如打印;
QGraphicsView是視圖窗口部件,它使場景內容可視化,可以連接幾個視圖到一個場景也可以為相同的數據集提供不同的視圖。視圖接收鍵盤和鼠標的輸入事件,並把它翻譯為場景事件。
QGraphItem是圖元基類具有的功能:
處理鼠標按下、移動、釋放、雙擊、懸停、滾輪和右鍵菜單事件;
處理鍵盤輸入事件;
處理拖放事件;
分組
碰撞檢測;
Graphics View框架中的三個有效的坐標系統:圖元坐標、視圖坐標、場景坐標
1.圖元坐標
圖元使用自己的本地坐標,這個坐標系統通常以圖元中心為原點,這也是所有變換的原點。圖元坐標方向是X軸正方向向右,Y軸正方向向下。創建圖元后,只需要注意圖元坐標就可以了,QGaphicsScene、QGraphicsView會完成所有的變換。
2.視圖坐標
視圖坐標是窗口不見的坐標,單位是像素,左上角是(0,0),坐標方向是X軸正方向向右,Y軸正方向向下。所有的鼠標事件最開始都是使用視圖坐標。
3.場景坐標
場景坐標是所有圖元的基礎坐標系統。坐標方向是X軸正方向向右,Y軸正方向向下。