2012-04-02 1 views
1

イムを設定しますがfilterAcceptsColumn方法をbecoseカント。どうすればこれを克服できますか?QSortFilterProxyModel filterAcceptsColumnは私が右のインデックスにはQt ::のUserRoleデータを設定するために問題を抱えているのconstである 「すべての道を」QSqlQueryModelモデル から取得イム列をフィルタリングするQSortFilterProxyModelを使用して、新しいインデックスデータ

bool MiniSortFilterProxyModel::filterAcceptsColumn(int source_column, const QModelIndex& index) const 
    { 
     QVariant tmp ; 
     if(source_column ==0) 
     { 

      setRowid(index.data(Qt::DisplayRole)); 
// here im getting compilation error 
//: error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const QString' (or there is no acceptable conversion) 
      m_rowId = index.model()->data(index,Qt::DisplayRole).toString(); 
      return false; 
     } 
     else if(source_column ==1) 
     { 
      setYTid(index.data(Qt::DisplayRole)); 
      return false; 
     } 
     else if(source_column ==2) 
     { 

      setNewData(index); 
      return QSortFilterProxyModel::filterAcceptsColumn(source_column,index); 
     } 
     return false; 
    } 


    void MiniSortFilterProxyModel::setRowid(QVariant rowId) const 
    { 
// here also compilation error: 
     m_rowId = rowId.toString(); 
    } 

    void MiniSortFilterProxyModel::setYTid(QVariant ytId) const 
    { 
/here also compilation error:  
m_ytId = ytId.toString(); 
    } 

    void MiniSortFilterProxyModel::setNewData(QModelIndex& index) const 
    { 
// here also compilation error: 
//error C2511: 'void MiniSortFilterProxyModel::setNewData(QModelIndex &) const' : //overloaded member function not found in 'MiniSortFilterProxyModel'    
QVariant data = m_rowId+"_"+m_ytId; 
      index.model()->setData(index,data,Qt::UserRole); 
    } 

答えて

1

クイックと汚い修正:とにかくm_rowId

mutableとして
mutable QString m_rowId; 

を宣言し、この方法は、QtのAPIでconstとして宣言された場合、その1はどこのことができます唯一の場所であることを確認してください理由がありますその値を割り当てます。

関連する問題