Qt 圖形視圖框架(Qt MVC)

什麼是MVC

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。 ------摘自百度百科

樓主簡單的理解就是M是數據模型,V是用戶可見的視圖,C是響應用戶操作的控制器。

 

Qt圖形視圖框架與MVC

Qt圖形視圖框架就是採用MVC的設計思想:

QGraphicsView負責顯示,屬於V; QGraphicsScene以及QGraphicsItem存儲場景以及圖形項的數據,屬於M;由於QGraphicsView的祖先是QWidget,QWidget自身可以響應鼠標、鍵盤等用戶操作,所以在Qt中QGraphicsView同時負責響應用戶操作,屬於C。  打個比喻:QGraphicsViews是電影院中的幕布,QGraphicsScene是膠捲,QGraphicsItem是膠捲中的一個個人物(或者動物等等)。

 

代碼示例

#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsSimpleTextItem>


int main(int argc, char** argv)
{
    QApplication app(argc, argv);

    //QGraphicsView用於顯示用戶界面
    QGraphicsView view;   //--->V &&  C

    //QGraphicsScene 提供場景數據
    QGraphicsScene scene;    //--->M
    //給視圖添加場景
    view.setScene(&scene);

    //QGraphicsSimpleTextItem(繼承自QGraphicsSimpleItem) 提供圖元數據
    QGraphicsSimpleTextItem  simpleTextItem("Hello Qt MVC!");  //--->M
    simpleTextItem.setPen(QPen(Qt::red));
    //給場景添加圖元
    scene.addItem(&simpleTextItem);
    simpleTextItem.setPos(100,100);

    view.show();

    return app.exec();
}

 

運行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章