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