怎么可以QSortFilterProxyModel
用于过滤 QTreeView
中的一行但不是它的子节点?
假设我想过滤第一列文本为 Mammal
的所有行但保留子行(例如 Moose
、 Cat
等)
如果在示例中模型包含:
Animals
Mammals
Moose
Dog
Cat
Mouse
应用过滤器后, View 将如下所示:
Animals
Moose
Dog
Cat
Mouse
这可以使用
QSortFilterProxyModel
来完成吗? ?如果没有,我当然愿意接受建议。但是从我已经用于其他任务的代理中完成它会很好。
最佳答案
在文档中有一个方法 QSortFilterProxyModel::mapToSource . IMO 这是解决这个问题的最佳人选。我知道这是一个远景,但结合 filterAcceptsRow
它应该工作。
问题是它没有很好的记录。 base class QAbstractProxyModel
的文档说你必须重新实现两个方法:mapFromSource
和 mapToSource
.
Qt 是一个开源项目,因此最好查看 mapToSource
的内部信息。及其对应物 mapFromSource
.如果我有时间,我会这样做并改进这个答案。
关于qt - 使用 QSortFilterProxyModel 过滤 QTreeView 中的父行而不是子行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32172405/