How set FilterRole base on customer data type's member.
-
this is my datatype
typedef struct { QPixmap icon; QString userName; QString recentMessage; } MuItemData; Q_DECLARE_METATYPE(MuItemData)
I use the instance of MuItemDatatype to add data to QStandardItem as well as set model
for(int i = 0; i < userData->size(); ++i) { QStandardItem *pItem = new QStandardItem; MuItemData itemData; itemData.userName = userData->at(i).getSNickName(); itemData.icon = userData->at(i).getPixUserIcon(); itemData.recentMessage = userData->at(i).getVRecentMessage()[0]; pItem->setData(QVariant::fromValue(itemData), Qt::UserRole+1); userDataModel->appendRow(pItem); }
Then i use QSortFilterProxyModel. What my question is how can I filter every data item based on 'userName'
//the type of userDataProxyModel is QSortFilterProxyModel userDataProxyModel->setSourceModel(userDataModel);
i use setFilterRegExp but it's filter is not 'userName'.
-
I found a solution that set a data role based on 'userName'. whether have a better way avoiding set redundant data?
pItem->setData(userData->at(i).getSNickName(), Qt::UserRole); ..... userDataProxyModel->setFilterRole(Qt::UserRole);