使用QSortFilterProxyModel过滤QTableView后保留选择

时间:2011-04-05 13:48:14

标签: c++ qt4 qtableview

我创建了一个QTableView链接到与另一个模型相关联的QSortFilterProxyModel。 在QTableView下(在GUI中)有一个QLineEdit用于“搜索”视图中的元素。

我的想法是在QLineEdit中写下我正在寻找的内容,让视图只显示匹配的元素。过滤后,我想选择相关项目,然后清除QLineEdit以便在完整视图中返回。 一切正常,但由于失效,将被过滤的所选项目也将丢失选择。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

为什么你不记得过滤前选定的行,然后在完成过滤后再恢复它。

你可以直接使用我想象的QItemSelectionModel

在过滤前使用QItemSelectionModel::selectedRows(),并在使用QItemSelectionModel::select()过滤后选择行。

我知道这个帖子已经很老了,但我想我会留下任何其他人面临类似问题的评论。

答案 1 :(得分:0)

根据您所写的内容,当您清理QTableView内容时,问题出现在QLineEdit松动的选择中。如果您在行编辑的editingFinished()textChanged()信号中启动了'搜索'例程,则可以在更改QLineEdit之前向他们disconnect发送信号然后重新连接回来。或者使用布尔标志,并且在打开时不要更改过滤。如果你想用你遇到的问题发布你的代码的简化版本,那么回答你的问题会容易得多。