Graphics View結構的主要類包括視圖類QGraphicsView、場景類QGraphicsScene,和各種圖形項類,圖形項類的基類都是QGraphicsItem。
QGraphicsView類的主要接口函數
QGraphicsView是用于觀察一個場景的實體視窗,當場景小于視圖時,整個場景在視圖中可 見;當場景大于視圖時,視圖自動提供卷滾條。
QGraphicsView的視口坐标等于顯示裝置的實體坐标,但是也可以對QGraphicsView的坐标 進行平移、旋轉、縮放等變換。
下圖是QGraphicsView的主要接口函數。一般的設定函數還有一個對應的讀取函數,如setScene()對應的讀取函數是scene(),這裡隻列出設定函數。并且僅列出函數的傳回資料類型,省略了輸入參數。
QGraphicsScene類的主要接口函數
QGraphicsScene是用于管理圖形項的場景,是圖形項的容器,有添加、删除圖形項的函數, 管理圖形項的各種函數。下圖是QGraphicsScene的主要接口函數(僅列出函數的傳回資料類型, 省略了輸入參數)。
圖形項
QGraphicsItem是所有圖形項的基類,使用者也可以從QGraphicsItem繼承定義自己的圖形項。Qt定義了一些常見的圖形項,這些常見的圖形項的類的繼承關系如下圖所示。
QGraphicsItem類提供了圖形項操作的函數,常見的函數見下圖(僅列出函數的傳回資料類 型,省略了輸入參數)。
setFlags()函數可以設定一個圖形項的操作标志,包括可選擇、可移動、可擷取焦點等,如:
item->setFlags(QGraphicsItem::ItemlsMovable
| QGraphicsItem::ItemlsSelectable
| QGraphicsItem::ItemlsFocusable);
setPos()函數設定圖形項在父項中的坐标,如果沒有父項,就是在場景中的坐标。
setZValue()控制圖形項的疊放次序,當有多個圖形項有重疊時,zValue越大的,越顯示在前面。
圖形項可以通過setRotation()進行旋轉,通過setScale()進行縮放。
圖形項還可以與其他圖形項、父項和場景之間進行坐标轉換,這些将在後續執行個體程式中講解。