Graphics View結構的主要類包括:視圖類QGraphicsView、場景類QGraphicsScene、和各種圖形項類(基類都是 QGraphicsItem)
1. QGraphicsView 用於觀察一個場景的物理窗口
場景小於視圖,整個場景在視圖中可見;當場景大於視圖時,試圖自動提供卷滾條
QGraphicsView的視口坐標等於顯示設備的物理坐標,但是可以對QGraphicsView的坐標進行平移、旋轉和縮放
設置接口函數如下:
場景 | void setScene() | // 設置關聯的場景 |
void setSceneRect() | //場景在視圖中可視的部分的矩形區域 | |
外觀 | void setAlignment() | //設置場景在在視圖中的對齊方式 |
void setBackgroundBrush() | ||
void setForegroundBrush() | ||
void setRenderHints( ) | //設置繪圖選項 | |
交互 | void setInteractive() | 可交互 |
QRect rubberBandRect | 返回選擇矩形框 | |
void setRubberBandSelectionMode() | 選擇模式 | |
QGraphicsItem *itemAt() | 獲取視圖坐標系中 某個位置處的圖形項 | |
QList<QGraphicsItem *> items() | 獲取場景中所有、或者某個選擇區域內圖形項的列表 | |
坐標 | QPoint mapFormScene | 將場景中的一個坐標轉換為視圖的坐標 |
映射 | QPointF mapToScene | 將視圖中的一個坐標轉換為場景的坐標 |
2 QGraphicsScene 主要用於管理圖形項的場景,是圖形項的容器,有添加、刪除圖形項的函數,管理圖形項的各種函數。
場景 | void setSceneRect() | set場景的矩形區 |
分組 | QGraphicsItemGroup* createItemGroup() | 創建圖形項組 |
void destroyItemGroup() | 解除一個圖形項組 | |
輸入焦點 | QGraphicsItem * focusItem | 返回當前獲得焦點的圖形項 |
void clearFocus | 去除選擇焦點 | |
bool hasFocus | 視圖時否有焦點 | |
圖形項操作 | void addItem() | 添加一個已經創建的圖形項 |
void removeItem() | 刪除圖形項 | |
void clear() | 清除所有圖形項 | |
QGraphicesItem* mouseGrabberItem() |
返回鼠標抓取的圖形項 | |
QList<QGraphicsITEM *>selectedItems() | 返回選擇的圖形項列表 | |
QGraphicsItem *itemAt() | 獲取某個位置處的頂層圖形項 | |
QList<QGraphicsITEM *> items() | 返回選擇區域內圖形項列表 | |
3 QGraphicsItem是所有圖形類的基類
注意坐標映射