我有一個工作Qtableview自定義模型子類QAbstractTableModel和QAbstractItemModel。過濾集Qtableview操作
我有一個QLineEdit的,onclicked它會過濾視圖:
// model.cpp 使用setfilter(QString的strFilter的)函數搜索槽我實習的QList(這的QList實際上是連接到模擬),如果找到匹配那麼:m_filterSet.insert(i);
這一切都很好。問題是,我有對tableview(插入行,刪除行..)CRUD操作,這也很好!但是,當從過濾的集合中選擇一行時,我需要以某種方式知道我的QList中的哪個部分恰恰是來自過濾集合(QSet)的此選定行。
ui.myView->selectionModel()->currentIndex().row();
明顯給出了錯誤的指標當前視圖計數。
我怎麼能以某種方式從QSet中選定的行提取值(int)? 因爲當我添加了這個功能,型號:
foreach (const int &value, m_filterSet)
qDebug() << value;
它打印出來,成功的所有I值,例如:3410,3411,3412(這些都是我的客戶的ID)
如果我能提取此在展示Qset選定的行ID,我可以寫我的迭代實習生的QList功能,並找到匹配的,可以這麼說:
if(m_Intern[i].nClientID == nId){ // nId = value inside Qset for selected row in view
return nIdx;
}
THX但我居然發現一個漂亮的simplier方式.. – PathOfNeo 2013-03-13 23:31:38
你需要對每一個使用mapToSource()在原始視圖代碼中調用'currentIndex()'還是有更巧妙的方式來映射索引? – Prikers 2017-12-13 10:47:39