How to limit number shown rows in list model using proxy model?
Unsolved
General and Desktop
-
I can't figure out how to limit number shown rows in list model using proxy model?
filterModel->setSourceModel(&langListModel); filterModel->setFilterRole(langListModel.NameRole);
#include "langlistmodel.h" LangListModel::LangListModel(QObject *parent): QAbstractListModel(parent) { } int LangListModel::rowCount(const QModelIndex &parent) const { if (parent.isValid()) { return 0; } return listData.size(); } QVariant LangListModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) { return QVariant(); } switch (role) { case IDRole: return listData.at(index.row()).value("id"); case NameRole: return listData.at(index.row()).value("name"); default: return QVariant(); } } QHash<int, QByteArray> LangListModel::roleNames() const { QHash<int, QByteArray> roles = QAbstractListModel::roleNames(); roles[NameRole] = "name"; roles[IDRole] = "IDLang"; return roles; } void LangListModel::add(const QMap<QString, QString> &unit) { beginInsertRows(QModelIndex(), listData.size(), listData.size()); listData.append(unit); endInsertRows(); } int LangListModel::size() const { return listData.size(); } void LangListModel::clear() { beginRemoveRows(QModelIndex(), 0, listData.size()); endRemoveRows(); listData.clear(); }
-
Hi
What do you have for
setFilterRegExp( );
https://doc.qt.io/qt-5/qsortfilterproxymodel.html#filterRegExp-prop
or https://doc.qt.io/qt-5/qsortfilterproxymodel.html#setFilterFixedString
to do the actual filtering ? -
-
Isn't that the same question as you posted here ?
Thus the same answer as @JonB applies here too:
@Subuday said in How to limit number shown rows in list model using proxy model?:
int LangListModel::rowCount(const QModelIndex &parent) const
{
if (parent.isValid()) {
return 0;
}return listData.size();
}
You got your if wrong.