Qt学习记录,QSortFilterProxyModel
2015-04-01 09:08
471 查看
QSortFilterProxyModel主要可实现按表的标头实现自动排序,及根据过滤条件过滤,具体的demo可以查看QT自带的Item views系列。
我的例子还没加上过滤。
总结下:一般我们都是直接使用view->setModel来将数据显示在view上,这就是QT的model/view模式。
这里也不例外:ui.DaTreeView->setModel(proxyModel);
而这个proxyModel的内容是什么呢?
proxyModel->setSourceModel( create_da_model(this,da_result) );
这里给我的model填充内容,因为我需要从数据库提取我想要的内容,我把这些内容放在了一个QList里,而不是我们通常使用QSqlQueryModel这样去获取全部的内容后直接作为model传入我的proxyModel,这里我就需要创建我自己的model了,那么跳到函数create_da_model();
该函数要做的就是先填标头,然后遍历将我QList的内容填入。这里就不做多解释了,不明白?那么留言吧。
我的例子还没加上过滤。
add_da(QAbstractItemModel* model,int &ID,const QString& Description,const QString& Type){ model->insertRow(0); model->setData(model->index(0,0),ID); model->setData(model->index(0,1),Description); model->setData(model->index(0,2),Type); } QAbstractItemModel* create_da_model(QObject *parent,QList<Da_result> da_result){ QStandardItemModel *model = new QStandardItemModel(0,3,parent); model->setHeaderData(0,Qt::Horizontal,QObject::tr("ID"); model->setHeaderData(1,Qt::Horizontal,QObject::tr("Description"); model->setHeaderData(2,Qt::Horizontal,QObject::tr("Type"); foreach(Da_result da_list,da_result{ add_da(model,da_list.ID,da_list.Description,da_list.Da_Type); } return model; } QSortFileterProxyModel* proxyModel = new QSortFilterProxyModel; proxyModel->setDynamicSortFilter(true); ui.DaTreeView->setRootIsDecorated(false); ui.DaTreeView->setAlternatingRowColors(true); ui.DaTreeView->setModel(proxyModel); ui.DaTreeView->setSortingEnabled(true); proxyModel->setSourceModel( create_da_model(this,da_result) );
总结下:一般我们都是直接使用view->setModel来将数据显示在view上,这就是QT的model/view模式。
这里也不例外:ui.DaTreeView->setModel(proxyModel);
而这个proxyModel的内容是什么呢?
proxyModel->setSourceModel( create_da_model(this,da_result) );
这里给我的model填充内容,因为我需要从数据库提取我想要的内容,我把这些内容放在了一个QList里,而不是我们通常使用QSqlQueryModel这样去获取全部的内容后直接作为model传入我的proxyModel,这里我就需要创建我自己的model了,那么跳到函数create_da_model();
该函数要做的就是先填标头,然后遍历将我QList的内容填入。这里就不做多解释了,不明白?那么留言吧。
相关文章推荐
- Qt 学习之路:QSortFilterProxyModel
- Qt学习:项视图类之QSortFilterProxyModel和QListWidget
- qt 代理模型 proxy model QSortFilterProxyModel
- Qt之QHeaderView自定义排序(QSortFilterProxyModel)
- Qt QSortFilterProxyModel示例代码, 使用方法
- QT的排序与过滤(QSortFilterProxyModel)
- Qt之QHeaderView自定义排序(QSortFilterProxyModel)
- Qt中QSortFilterProxyModel关于多列排序的实现
- 【Qt笔记】QSortFilterProxyModel
- How to use Qt’s QSortFilterProxyModel
- Qt QSortFilterProxyModel示例代码, 使用方法
- QtCreator 代理模型(QSortFilterProxyModel),数据窗口映射器(QDataWidgetMapper)
- QSortFilterProxyModel
- QDirModel使用QSortFilterProxyModel过滤指定磁盘和非系统盘
- QSortFilterProxyModel实现数据筛选
- 基于QSortFilterProxyModel实现表格数据查询排序框架
- Qt学习之路(44): QSortFilterProxyModel
- QSortFilterProxyModel的简单用法
- Qt学习之路(44): QSortFilterProxyModel
- QSortFilterProxyModel--44