GraphicsView学习-内容介绍(1)
生活随笔
收集整理的這篇文章主要介紹了
GraphicsView学习-内容介绍(1)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
GraphicsView學(xué)習(xí)-內(nèi)容介紹(1)
文章目錄
- GraphicsView學(xué)習(xí)-內(nèi)容介紹(1)
- @[toc]
- 一、Graphics View框架簡介
- 二、Graphics View主要構(gòu)成
- 1、QGraphicsScene
- 2、QGraphicsView
- 3、QGraphicsItem
- @[toc]
- 一、Graphics View框架簡介
- 二、Graphics View主要構(gòu)成
- 1、QGraphicsScene
- 2、QGraphicsView
- 3、QGraphicsItem
| 👉個人內(nèi)容分類匯總 👈 |
| 👉QGraphicsView框架 👈 |
一、Graphics View框架簡介
- Qt中常見的繪圖一般是繼承QWidget通過重寫paintEvent虛函數(shù)來進行繪圖,但是這種繪圖方式如果在實現(xiàn)較為復(fù)雜的需求時就會比較麻煩,開發(fā)工作量巨大,比如實現(xiàn)單個圖形項的移動、縮放等操作。
- Graphics View繪圖架構(gòu)提供了一個用于管理大量定制2D圖形項目并與之交互的界面,以及一個用于可視化項目的視圖小部件,并支持縮放和旋轉(zhuǎn);
- 可以根據(jù)需求使用已有的圖元(QGraphicsItem )或者自定義圖元進行繪圖,圖元與圖元直接相互獨立,互不影響,這就很爽了,在實現(xiàn)單個圖元、一組圖元、所有圖元的操作就很方便了。
- 該框架包括一個事件傳播架構(gòu),該架構(gòu)允許對場景中的項目進行精確的雙精度交互能力。圖元可以處理按鍵事件、鼠標(biāo)按下、移動、釋放和雙擊事件,它們還可以跟蹤鼠標(biāo)移動。
- Graphics View 使用 BSP(Binary Space Partitioning)樹來提供非常快速的圖元查找,因此,它可以實時可視化大型場景,即使有數(shù)百萬個圖元。
二、Graphics View主要構(gòu)成
Graphics View 框架結(jié)構(gòu)主要由場景類(QGrphicsSene)、視圖類(QGraphicsView)和圖元類(QGraphicsItem) 三部分組成。
1、QGraphicsScene
QGraphicsScene為 Graphics View繪圖提供了一個場景,這個場景是不可見的,可以看作是一個用來管理圖元的類,具體有以下職責(zé):
- 提供用于管理大量圖元(item)的快速界面;
- 將事件傳播到每個圖元;
- 管理每個圖元的狀態(tài),例如選擇和焦點處理;
- 提供未轉(zhuǎn)換的渲染功能;主要用于打印。
2、QGraphicsView
QGraphicsView 提供一個可視的窗口,用于渲染顯示場景(Scene)中的圖元。
- 一個場景(Scene)可以添加顯示到多個視圖(View),例如:
- 視圖小部件是一個可滾動的窗口部件,可提供滾動條用于瀏覽大型場景;
- QGraphicsView 支持使用OpenGL渲染(后面詳細(xì)說)。
3、QGraphicsItem
QGraphicsItem類是場景中圖元的基類,通過繼承QGraphicsItem提供了幾個標(biāo)準(zhǔn)基本圖元類,也可在此基礎(chǔ)上自定義圖形項,QGraphicsItem還支持下列功能:
- 鼠標(biāo)按下、移動、釋放和雙擊事件,以及鼠標(biāo)懸停事件、滾輪事件和上下文菜單事件;
- 鍵盤輸入焦點和按鍵事件;
- 鼠標(biāo)拖放;
- 通過父子關(guān)系和使用QGraphicsItemGroup進行分組;
- 碰撞檢測。
QGraphicsItem派生的子類結(jié)構(gòu)如下圖:
常用的基本圖元項有:
aphicsTextItem:富文本圖元
總結(jié)
以上是生活随笔為你收集整理的GraphicsView学习-内容介绍(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。