2

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

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

我怎么解决这个问题?

4

2 回答 2

1

为什么您不记得过滤之前选择的行,然后在完成过滤后将其恢复。

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

过滤前使用QItemSelectionModel::selectedRows(),过滤后使用QItemSelectionModel::select().

我知道这个线程很老,但我想我会为其他面临类似问题的人留下评论。

于 2012-11-22T09:10:24.183 回答
0

从您写的内容来看,问题似乎在于QTableView您在清理QLineEdit内容时丢失的选择。如果您在行编辑的editingFinished()textChanged()信号中开始“搜索”例程,您可以在更改之前断开它们,然后重新连接。或者使用布尔标志并且在它打开时不要更改过滤。如果您发布您遇到的问题的代码的简化版本,那么回答您的问题会容易得多。QLineEdit

于 2011-04-06T02:10:39.173 回答