#include
class MySortFilterProxyModel : public QSortFilterProxyModel { public:
MySortFilterProxyModel(QObject *parent = nullptr) : QSortFilterProxyModel(parent) {}
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
{
QModelIndex index = sourceModel()->index(source_row, 0, source_parent);
QString text = sourceModel()->data(index).toString();
if (text.contains("filtered")) {
return true;
}
return false;
}
};
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QTableView tableView;
QStandardItemModel sourceModel(5, 2);
sourceModel.setData(sourceModel.index(0, 0), "row1");
sourceModel.setData(sourceModel.index(0, 1), "col1");
sourceModel.setData(sourceModel.index(1, 0), "row2");
sourceModel.setData(sourceModel.index(1, 1), "col2");
sourceModel.setData(sourceModel.index(2, 0), "row3");
sourceModel.setData(sourceModel.index(2, 1), "col3");
sourceModel.setData(sourceModel.index(3, 0), "row4");
sourceModel.setData(sourceModel.index(3, 1), "col4");
sourceModel.setData(sourceModel.index(4, 0), "row5");
sourceModel.setData(sourceModel.index(4, 1), "col5");
MySortFilterProxyModel proxyModel;
proxyModel.setSourceModel(&sourceModel);
proxyModel.setDynamicSortFilter(true);
tableView.setModel(&proxyModel);
tableView.show();
return a.exec();
}