当前位置:   article > 正文

Qt MV架构-代理模型

Qt MV架构-代理模型

一、基本概念

代理模型可以将一个模型中的数据进行排序或者过滤,然后提供给视图进行显示。

Qt中提供了QSortFilterProxyModel作为标准的代理模型来完成模型中数据的排序和过滤。

要使用一个代理模型,则只需要为其设置源模型,然后再视图中使用该代理模型即可。

二、代码示例

#include <QStringListModel>
#include <QSortFilterPoxyModel>

//在构造函数添加以下代码
{
	QStringList list;
	list << "yafei" << "yafeilinux" << "Qt" << "Qt Creator";
	QStringListModel * listModel = new QStringListModel(list, this);
	filterModel = new QSortFilterProxyModel(this);
	
	//为代理模型添加源模型
	filterModel->setSourceModel(listModel);
	
	//在视图中使用代理模型
	ui->listView->setModel(filterModel);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

当想要过滤时,比如单击某按钮:

void MainWindow:onPushButtonClicked()
{
	QRegExp rx(ui->lineEdit->text());
	filterModel->setFilterRegExp(rx);
}
  • 1
  • 2
  • 3
  • 4
  • 5

这里使用了行编辑器中的文本作为正则表达式


参考资料:Qt Creator快速入门第2版 (霍亚飞 著)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/831136
推荐阅读
相关标签
  

闽ICP备14008679号