> 文章列表 > Qt模型视图结构

Qt模型视图结构

Qt模型视图结构

一.模型视图介绍   

 1.Model/View(模型/视图结构)  视图(View)是显示和编辑数据的界面组件,
    模型(Model)是视图和原始数据之间的接口

    2.视图组件有:QListView QTreeView QTableView,QColumnView,QHeaderView
    模型组件有:QStringListModel,QStandardItemModel

    3.Model/View结构

视图或视图组件(View):视图从数据模型获取每个数据项模型索引,通过模型索引获取数据,然后为界面组件提供显示数据。

模型或模型数据与实际数据通信,并为视图组件提供数据。

代理(Delegate):可以让用户定制数据的界面显示和编辑方式。

模型,视图和代理之间使用信号和槽通信。

数据模型:所有基于项数据(Item data)的数据模型(Model)都是基于QAbstractItemModel类的)此类定义视图组件和代理存取数据的接口。

QSqlRelationTableMode:关系型数据表

QSqlTableModel:数据库的一个数据表

QSqlQueryModel:QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能,但是QSqlQueryModel只能作为只读数据源使用,不可以编辑数据

二.模型视图的优点

1.一个Model可以映射多个View,可以以不同的方式查看数据同一份数据

2.如果底层数据源的存储改变了,只需要处理Model

给一个例子显示文件夹目录:

    m_fileModel = new QFileSystemModel(this);m_fileModel->setRootPath(QDir::currentPath());ui->treeView->setModel(m_fileModel);
QFileSystemModel *m_fileModel;//定义数据模型变量