我创建了一个QTableView
链接到与另一个模型相关联的QSortFilterProxyModel
。
在QTableView
下(在GUI中)有一个QLineEdit
用于“搜索”视图中的元素。
我的想法是在QLineEdit
中写下我正在寻找的内容,让视图只显示匹配的元素。过滤后,我想选择相关项目,然后清除QLineEdit
以便在完整视图中返回。
一切正常,但由于失效,将被过滤的所选项目也将丢失选择。
我该如何解决这个问题?
答案 0 :(得分:1)
为什么你不记得过滤前选定的行,然后在完成过滤后再恢复它。
你可以直接使用我想象的QItemSelectionModel
。
在过滤前使用QItemSelectionModel::selectedRows()
,并在使用QItemSelectionModel::select()
过滤后选择行。
我知道这个帖子已经很老了,但我想我会留下任何其他人面临类似问题的评论。
答案 1 :(得分:0)
根据您所写的内容,当您清理QTableView
内容时,问题出现在QLineEdit
松动的选择中。如果您在行编辑的editingFinished()或textChanged()信号中启动了'搜索'例程,则可以在更改QLineEdit
之前向他们disconnect发送信号然后重新连接回来。或者使用布尔标志,并且在打开时不要更改过滤。如果你想用你遇到的问题发布你的代码的简化版本,那么回答你的问题会容易得多。