【发布时间】:2013-03-12 16:55:32
【问题描述】:
我有一个工作 Qtableview 自定义模型子类 QAbstractTableModel 和 QAbstractItemModel。
我有一个 Qlineedit,点击它会过滤视图:
// 模型.cpp setFilter(QString strFilter) 函数通过我的实习生 QList 搜索(此 Qlist 实际上附加到模型),如果找到匹配项,则:m_filterSet.insert(i);
这一切都很好。问题是,我对 tableview 进行了 CRUD 操作(插入行,删除行..),这也很好用!但是当从 filtered 集合中选择一行时,我需要以某种方式知道我的 QList 中的这个选定行究竟是来自过滤集合 (QSet) 的哪个位置。
ui.myView->selectionModel()->currentIndex().row();
obvious 为当前视图提供了错误的索引计数。
如何以某种方式从 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;
}
【问题讨论】:
标签: qt