赞
踩
代理模型可以将一个模型中的数据进行排序或者过滤,然后提供给视图进行显示。
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); }
当想要过滤时,比如单击某按钮:
void MainWindow:onPushButtonClicked()
{
QRegExp rx(ui->lineEdit->text());
filterModel->setFilterRegExp(rx);
}
这里使用了行编辑器中的文本作为正则表达式。
参考资料:Qt Creator快速入门第2版 (霍亚飞 著)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。