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.
Forum Updated to NodeBB v4.3 + New Features

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

Scheduled Pinned Locked Moved Solved General and Desktop
2 Posts 1 Posters 155 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