中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Qt--模式視圖設(shè)計(jì)

一.模型視圖設(shè)計(jì)模式

A.模型視圖設(shè)計(jì)模式
1.模型與視圖相分離
2.模型對外提供標(biāo)準(zhǔn)接口存取數(shù)據(jù)(不關(guān)心數(shù)據(jù)如何顯示)
3.視圖自定義數(shù)據(jù)的顯示方式(不關(guān)系數(shù)據(jù)如何組織存儲(chǔ))
模型視圖模式的直觀理解
Qt--模式視圖設(shè)計(jì)
模型視圖的工作機(jī)制
1.當(dāng)數(shù)據(jù)發(fā)生改變時(shí)--模型發(fā)出信號通知視圖
2.當(dāng)用戶與視圖進(jìn)行交互時(shí)--視圖發(fā)出信號提供交互信息
Qt中的模型類層次結(jié)構(gòu)
Qt--模式視圖設(shè)計(jì)
QAbstractItemModel類為項(xiàng)模型類提供抽象接口.QAbstractItemModel類定義項(xiàng)模型必須使用的標(biāo)準(zhǔn)接口,以便能夠與模型/視圖體系結(jié)構(gòu)中的其他組件進(jìn)行互操作。它不應(yīng)該直接實(shí)例化。相反,您應(yīng)該將其子類化以創(chuàng)建新模型。QAbstractItemModel類是Model / View Classes之一,是Qt模型/視圖框架的一部分。它可以用作QML中項(xiàng)視圖元素的基礎(chǔ)數(shù)據(jù)模型或Qt Widgets模塊中的項(xiàng)視圖類。如果您需要一個(gè)模型用于項(xiàng)目視圖,例如QML的List View元素或C ++小部件QListView或QTableView,您應(yīng)該考慮子類化QAbstractListModel或QAbstractTableModel而不是此類。底層數(shù)據(jù)模型作為表層次結(jié)構(gòu)公開給視圖和委托。如果不使用層次結(jié)構(gòu),則模型是行和列的簡單表。每個(gè)項(xiàng)目都有一個(gè)由QModelIndex指定的唯一索引
Qt中視圖類的層次結(jié)構(gòu)
Qt--模式視圖設(shè)計(jì)
QAbstractItemView類是使用QAbstractItemModel的每個(gè)標(biāo)準(zhǔn)視圖的基類。QAbstractItemView是一個(gè)抽象類,本身不能實(shí)例化。?它提供了一個(gè)標(biāo)準(zhǔn)接口,通過信號和插槽機(jī)制與模型進(jìn)行互操作,使子類能夠隨著模型的變化保持最新。?此類為鍵盤和鼠標(biāo)導(dǎo)航,視口滾動(dòng),項(xiàng)目編輯和選擇提供標(biāo)準(zhǔn)支持。
模型視圖編程示例
Qt--模式視圖設(shè)計(jì)
樹狀視圖與模型的代碼示例

創(chuàng)新互聯(lián)公司長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為駐馬店企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站駐馬店網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

Widget.cpp
#include "Widget.h"
#include <QDir>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    m_treeView.setParent(this);
    m_treeView.move(10, 10);
    m_treeView.resize(500, 300);

    m_fsModel.setRootPath(QDir::currentPath());//當(dāng)前路徑下

    m_treeView.setModel(&m_fsModel);//模型與視圖的連接

    m_treeView.setRootIndex(m_fsModel.index(QDir::currentPath()));
}

Widget::~Widget()
{

}

Widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QFileSystemModel>
#include <QTreeView>

class Widget : public QWidget
{
    Q_OBJECT

    QFileSystemModel m_fsModel;
    QTreeView m_treeView;//樹狀視圖
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

運(yùn)行的結(jié)構(gòu)如圖所示
Qt--模式視圖設(shè)計(jì)
B.模型視圖設(shè)計(jì)模式
1.模型定義標(biāo)準(zhǔn)接口(成員函數(shù))對數(shù)據(jù)進(jìn)行訪問
2.視圖通過標(biāo)準(zhǔn)接口獲取數(shù)據(jù)并定義顯示方式
3.模型使用信號與槽的機(jī)制通知視圖數(shù)據(jù)變化
4.模型中的數(shù)據(jù)都是以層次結(jié)構(gòu)表示的
C.模型中的索引
1.模型索引時(shí)數(shù)據(jù)與視圖分離的重要機(jī)制
2.模型中的數(shù)據(jù)使用唯一的索引來訪問
3.QModelIndex是Qt中的模型索引類--包含具體數(shù)據(jù)的訪問途徑,包含一個(gè)指向模型的指針
Qt--模式視圖設(shè)計(jì)
索引中的行與列--線性模型可以使用(row,column)作為數(shù)據(jù)索引Qt--模式視圖設(shè)計(jì)
模型中數(shù)據(jù)索引的通用方式--三元組(row,column,parent)
Qt--模式視圖設(shè)計(jì)
模型中數(shù)據(jù)索引的通用方式
Qt--模式視圖設(shè)計(jì)
D.Q:不同的視圖如何顯示同一個(gè)模型中的數(shù)據(jù)?
Qt中標(biāo)準(zhǔn)模型定義

Qt--模式視圖設(shè)計(jì)
數(shù)據(jù)角色的概念
1.模型中的數(shù)據(jù)在視圖中的用途可能不同
2.模型必須為數(shù)據(jù)設(shè)置特定數(shù)據(jù)角色
3.數(shù)據(jù)角色用于提示視圖數(shù)據(jù)的作用
4.數(shù)據(jù)角色是不同視圖以統(tǒng)一風(fēng)格顯示數(shù)據(jù)的標(biāo)準(zhǔn)
Qt中的數(shù)據(jù)角色定義
Qt--模式視圖設(shè)計(jì)
數(shù)據(jù)角色的意義--定義了數(shù)據(jù)在特定系統(tǒng)下的標(biāo)準(zhǔn)用途,不同的視圖可以通過相同標(biāo)準(zhǔn)顯示數(shù)據(jù)

網(wǎng)頁標(biāo)題:Qt--模式視圖設(shè)計(jì)
當(dāng)前鏈接:http://www.rwnh.cn/article18/jiphdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司用戶體驗(yàn)做網(wǎng)站

廣告

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

外貿(mào)網(wǎng)站建設(shè)
大荔县| 渝中区| 库尔勒市| 观塘区| 随州市| 衢州市| 双江| 息烽县| 阿鲁科尔沁旗| 建宁县| 芦山县| 百色市| 玛曲县| 民和| 织金县| 西吉县| 辽源市| 寿光市| 荆门市| 漳平市| 富民县| 秭归县| 三台县| 南靖县| 曲沃县| 象山县| 宾川县| 连南| 武陟县| 长春市| 余干县| 双峰县| 磐石市| 根河市| 乐东| 台前县| 吉木萨尔县| 新乡市| 绥化市| 古丈县| 崇义县|