欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

QTModelViewController使用和認(rèn)識(shí)-創(chuàng)新互聯(lián)

MVC全稱(chēng)是 Model View Controller,是一種非常非常流行的架構(gòu)模式,相關(guān)MVC具體的,網(wǎng)上已經(jīng)非常非常詳盡了,不贅述了。

在青州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷(xiāo)型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),青州網(wǎng)站建設(shè)費(fèi)用合理。

關(guān)于Qt中的MVC

其實(shí)Qt中的MVC并不叫MVC,而是叫“MVD”,Qt中沒(méi)有Controller的說(shuō)法,而是使用了另外一種抽象: Delegate (委托) ,其行為和傳統(tǒng)的MVC是相同的。寫(xiě)過(guò)C#的同學(xué)肯定對(duì)delegate就不陌生了,這里delegate的用法就是負(fù)責(zé)協(xié)調(diào)Model和View之間的數(shù)據(jù)。其思想如下圖所示:

QT  Model View Controller 使用和認(rèn)識(shí)

Model是唯一和數(shù)據(jù)集打交道的組件,View不接觸數(shù)據(jù)源,其所需要的數(shù)據(jù)可以從Model中取出,而Delegate正式負(fù)責(zé)協(xié)調(diào)Model和View上數(shù)據(jù)。這種將view和數(shù)據(jù)源隔離的方式有幾點(diǎn)好處:

1、在處理較大的數(shù)據(jù)集時(shí)每個(gè)組件各司其職,不至于降低性能。

2、一個(gè)Model可以映射到多個(gè)View,這樣可以以不同的方式查看數(shù)據(jù)同一份數(shù)據(jù)。

3、如果底層數(shù)據(jù)源的存儲(chǔ)改變了,我們只需要處理Model就可以了。

舉個(gè)具體的例子:

QT  Model View Controller 使用和認(rèn)識(shí)

假設(shè)如圖所示的Data代表一個(gè)學(xué)校的期末成績(jī)的數(shù)據(jù)源,Model獲取了其中計(jì)算機(jī)學(xué)院的所有學(xué)生的成績(jī),而軟件的界面上我們有多個(gè)View用于顯示不同專(zhuān)業(yè)學(xué)生成績(jī)的詳細(xì),我們只需要從Model中篩選出所需的數(shù)據(jù),而篩選的工作正是交給Delegate來(lái)做的。

使用Qt預(yù)定義組件

Qt為我們預(yù)定義了豐富組件類(lèi),通常情況下使用這些類(lèi)就能實(shí)現(xiàn)比較好看的視圖了。這個(gè)例子里我們正式使用QTableView和QStandardItemModel,Delegate在這里不需要關(guān)注,默認(rèn)的Delegate就可以很好的協(xié)調(diào)Model和View了。 考慮篇幅,我做一個(gè)比較小的視圖,就不考慮外部的數(shù)據(jù)源了,數(shù)據(jù)都是我手動(dòng)添加的 ,在一個(gè)Widget類(lèi)中我們分別定義一個(gè)QTableView和一個(gè)QStandardItemModel,其結(jié)構(gòu)大致是這樣的:

class demo : public QWidget
{  Q_OBJECT

public:  demo(QWidget *parent = 0);  ~demo();

private:  Ui::demoClass ui;  QStandardItemModel* mModel;
};

ui成員是Qt Designer生成的類(lèi),我們的QTableView的對(duì)象就在其中(QTableView我直接拖拽上去的,為了節(jié)約時(shí)間,呵呵),之后再demo的構(gòu)造函數(shù)中我們使用setModel函數(shù)就可以把Model和view進(jìn)行綁定:

demo::demo(QWidget *parent)
: QWidget(parent), mModel(new QStandardItemModel())
{  ui.setupUi(this);  mModel->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("Name")));  mModel->setHorizontalHeaderItem(1, new QStandardItem(QObject::tr("Type")));  mModel->setHorizontalHeaderItem(2, new QStandardItem(QObject::tr("Size")));  mModel->setHorizontalHeaderItem(3, new QStandardItem(QObject::tr("Time")));    QList<QStandardItem *> item;  item.append(new QStandardItem(QObject::tr("Qt.css")));  item.append(new QStandardItem(QObject::tr("css")));  item.append(new QStandardItem(QObject::tr("100KB")));  item.append(new QStandardItem(QObject::tr("2016-1-10")));  mModel->appendRow(item);
    ......  ui.mView->setModel(mModel);
}

一些重復(fù)的添加數(shù)據(jù)的工作,我就沒(méi)有貼出來(lái),這段代碼基本上沒(méi)有接觸過(guò)Qt的人也能很好的理解,很直觀是吧。首先在mModel中設(shè)置后表頭然后添加數(shù)據(jù),到最后調(diào)用setModel()函數(shù)綁定M/V,之后Delegate就默默地后臺(tái)工作,幫我們完成View的繪制,其效果圖:

QT  Model View Controller 使用和認(rèn)識(shí)

當(dāng)然界面我用qss做了一些美化的工作,感興趣的朋友可以點(diǎn)擊 這里 下載到這個(gè)demo的源碼。

上面例子的不足之處

也許上述的例子已經(jīng)能滿(mǎn)足你的日常需要,但是仍有瑕疵,一個(gè)“炫酷”的界面應(yīng)該具備以下幾點(diǎn) 比如1、Name列 要能顯示文件類(lèi)型的ICON ,2 、日期編輯的時(shí)候不是允許輸入任意字符,當(dāng)然你可以使用正則表達(dá)式過(guò)濾輸入,但是這仍然不夠完美,合理的方法應(yīng)該是使用一個(gè)日歷的組件去編輯Time列。

  • 2

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:QTModelViewController使用和認(rèn)識(shí)-創(chuàng)新互聯(lián)
鏈接URL:http://www.aaarwkj.com/article0/jdjoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、網(wǎng)站改版、電子商務(wù)、品牌網(wǎng)站制作定制開(kāi)發(fā)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
亚洲天堂av一区二区在线| 欧美日韩亚洲人人夜夜澡| 亚洲国产视频不卡一区| 精品一区二区视频在线观看网站| 亚洲中文字幕av天堂久久| 欧美内射专区精品一区| 不卡视频在线免费观看| 一本色道久久88综合日韩| 欧美性生活真实的视频| 国产第一页国产第一页| 国产亚洲一区二区三区av| 中文字幕人妻丝袜二区| 禁止18观看视频软件| 国产精品中文字幕有码| 亚洲天堂成人综合在线| av国语对白在线观看| 偷拍福利视频一区二区三区| 亚洲美女插入av网络导航| 成人激情在线免费电影| 国产91黑丝在线播放| 蜜桃成人一区二区三区| 欧美国产一级二级三级| 亚洲午夜一区二区三区精品| 日韩不卡免费一区二区三区视频| 国产精精精精品欧美日韩| 少妇高潮视频在线观看| 亚洲日本韩国一区二区| 欧美日韩亚洲国产专区精品| 国产无人区码一区二区| 欧美日本道一区二区三区| 五月婷婷六月丁香综合激情| 精品国产视频一区二区三区| 日日狠狠久久偷偷综合色| 中午字幕人妻少妇久久| 日本在线免费观看91| 日韩精品视频在线观看| 国产激情久久久久久久久久久| 亚洲综合欧美自偷自拍| 日韩av在线专区观看| 国产放荡av剧情精品| 色日韩在线观看视频|