Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How set FilterRole base on customer data type's member.

How set FilterRole base on customer data type's member.

Scheduled Pinned Locked Moved Solved General and Desktop
2 Posts 1 Posters 221 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    Wgxzzzzzzc
    wrote on last edited by
    #1

    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'.

    1 Reply Last reply
    0
    • W Offline
      W Offline
      Wgxzzzzzzc
      wrote on last edited by
      #2

      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);
      
      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved