天天看點

從零開始學Qt(63):Graphics View 相關的類

作者:未來奇兵

Graphics View結構的主要類包括視圖類QGraphicsView、場景類QGraphicsScene,和各種圖形項類,圖形項類的基類都是QGraphicsItem。

QGraphicsView類的主要接口函數

QGraphicsView是用于觀察一個場景的實體視窗,當場景小于視圖時,整個場景在視圖中可 見;當場景大于視圖時,視圖自動提供卷滾條。

QGraphicsView的視口坐标等于顯示裝置的實體坐标,但是也可以對QGraphicsView的坐标 進行平移、旋轉、縮放等變換。

下圖是QGraphicsView的主要接口函數。一般的設定函數還有一個對應的讀取函數,如setScene()對應的讀取函數是scene(),這裡隻列出設定函數。并且僅列出函數的傳回資料類型,省略了輸入參數。

從零開始學Qt(63):Graphics View 相關的類

QGraphicsScene類的主要接口函數

QGraphicsScene是用于管理圖形項的場景,是圖形項的容器,有添加、删除圖形項的函數, 管理圖形項的各種函數。下圖是QGraphicsScene的主要接口函數(僅列出函數的傳回資料類型, 省略了輸入參數)。

從零開始學Qt(63):Graphics View 相關的類

圖形項

QGraphicsItem是所有圖形項的基類,使用者也可以從QGraphicsItem繼承定義自己的圖形項。Qt定義了一些常見的圖形項,這些常見的圖形項的類的繼承關系如下圖所示。

從零開始學Qt(63):Graphics View 相關的類

QGraphicsItem類提供了圖形項操作的函數,常見的函數見下圖(僅列出函數的傳回資料類 型,省略了輸入參數)。

從零開始學Qt(63):Graphics View 相關的類

setFlags()函數可以設定一個圖形項的操作标志,包括可選擇、可移動、可擷取焦點等,如:

item->setFlags(QGraphicsItem::ItemlsMovable
            | QGraphicsItem::ItemlsSelectable
            | QGraphicsItem::ItemlsFocusable);           

setPos()函數設定圖形項在父項中的坐标,如果沒有父項,就是在場景中的坐标。

setZValue()控制圖形項的疊放次序,當有多個圖形項有重疊時,zValue越大的,越顯示在前面。

圖形項可以通過setRotation()進行旋轉,通過setScale()進行縮放。

圖形項還可以與其他圖形項、父項和場景之間進行坐标轉換,這些将在後續執行個體程式中講解。

繼續閱讀